uri*_*iah 63 javascript math jquery
如何修改此代码以在低于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;
}
Run Code Online (Sandbox Code Playgroud)
因此,输出将改变
4°7'34"W,168°1'23"N
至
04°07'34"W,168°01'23"N
谢谢你的时间
Dav*_*und 181
你总能这样做
('0' + deg).slice(-2)
Run Code Online (Sandbox Code Playgroud)
见slice()
:
您还可以使用负数从数组末尾进行选择
于是
('0' + 11).slice(-2) // '11'
('0' + 4).slice(-2) // '04'
Run Code Online (Sandbox Code Playgroud)
为了便于访问,您当然可以将其提取到函数中,甚至可以Number
使用它扩展:
Number.prototype.pad = function(n) {
return new Array(n).join('0').slice((n || 2) * -1) + this;
}
Run Code Online (Sandbox Code Playgroud)
这将允许你写:
c += deg.pad() + '° '; // "04° "
Run Code Online (Sandbox Code Playgroud)
上面的函数pad
接受一个指定所需字符串长度的参数.如果没有使用这样的参数,则默认为2.您可以写:
deg.pad(4) // "0045"
Run Code Online (Sandbox Code Playgroud)
注意明显的缺点是值n
不能高于11,因为0的字符串当前只有10个字符长.这当然可以给出技术解决方案,但我不想在这样一个简单的功能中引入复杂性.(你应该选择,看看亚历克斯的答案,以获得一个很好的方法).
另请注意,您将无法编写2.pad()
.它只适用于变量.但是,如果它不是变量,您将始终事先知道该数字包含多少位数.
Guf*_*ffa 37
创建一个可以重用的函数:
function minTwoDigits(n) {
return (n < 10 ? '0' : '') + n;
}
Run Code Online (Sandbox Code Playgroud)
然后在坐标的每个部分使用它:
c += minTwoDigits(deg) + "° ";
Run Code Online (Sandbox Code Playgroud)
等等.
ale*_*lex 11
您可以编写一个通用函数来执行此操作...
var numberFormat = function(number, width) {
return new Array(+width + 1 - (number + '').length).join('0') + number;
}
Run Code Online (Sandbox Code Playgroud)
这样,处理任意宽度就不成问题了。
if(myNumber.toString().length < 2)
myNumber= "0"+myNumber;
Run Code Online (Sandbox Code Playgroud)
或者:
return (myNumber.toString().length < 2) ? "0"+myNumber : myNumber;
Run Code Online (Sandbox Code Playgroud)
你总能做到
('0' + deg).slice(-2)
Run Code Online (Sandbox Code Playgroud)
如果经常使用,可以扩展对象Number
Number.prototype.pad = function(n) {
if (n==undefined)
n = 2;
return (new Array(n).join('0') + this).slice(-n);
}
deg.pad(4) // "0045"
Run Code Online (Sandbox Code Playgroud)
您可以在其中设置任何焊盘尺寸或保留默认值 2。