如何修改此代码以在小于10的任何数字前添加0
$('#detect').html( toGeo(apX, screenX) + latT +', '+ toGeo(apY, screenY) + lonT );
function toGeo(d, max) {
var c = '';
var r = d/max * 180;
var deg = Math.floor(r);
c += deg + "° ";
r = (r - deg) * 60;
var min = Math.floor(r);
c += min + "′ ";
r = (r - min) * 60;
var sec = Math.floor(r);
c += sec + "″";
return c;
}所以输出结果会从
西经4°7‘34“,北纬168°1’23”
至
西经04°07‘34“,北纬168°01’23”
耽误您时间,实在对不起
发布于 2011-12-15 07:07:58
你总是可以做到的
('0' + deg).slice(-2)请参阅slice()
您还可以使用负数从数组的末尾进行选择
因此
('0' + 11).slice(-2) // '11'
('0' + 4).slice(-2) // '04'为了便于访问,您当然可以将其提取到一个函数中,甚至可以使用它扩展Number:
Number.prototype.pad = function(n) {
return new Array(n).join('0').slice((n || 2) * -1) + this;
}这将允许你写下:
c += deg.pad() + '° '; // "04° "上面的函数pad接受指定所需字符串长度的参数。如果没有使用这样的参数,则默认为2。您可以这样写:
deg.pad(4) // "0045"注意明显的缺点,n的值不能大于11,因为0的字符串目前只有10个字符。这当然可以是一种技术解决方案,但我不想在这样一个简单的函数中引入复杂性。(如果您选择这样做,请参阅alex's answer以获得更好的解决方案)。
另请注意,您不能编写2.pad()。它只适用于变量。但是,如果它不是一个变量,你就会预先知道这个数字有多少位数。
发布于 2011-12-15 07:09:49
创建一个可以重用的函数:
function minTwoDigits(n) {
return (n < 10 ? '0' : '') + n;
}然后在坐标的每个部分中使用它:
c += minTwoDigits(deg) + "° ";诸若此类。
发布于 2015-01-14 00:39:46
if(myNumber.toString().length < 2)
myNumber= "0"+myNumber;或者:
return (myNumber.toString().length < 2) ? "0"+myNumber : myNumber;https://stackoverflow.com/questions/8513032
复制相似问题