我这里有这个功能:
function d2h(d) { return (+d).toString(16); }
所以说我放d2h(15);
。
这将返回f
。我需要它返回0f
。
我这里有这个功能:
function d2h(d) { return (+d).toString(16); }
所以说我放d2h(15);
。
这将返回f
。我需要它返回0f
。
使用String.padStart
:
(d).toString(16).padStart(2, '0')
最明显的方法是检查它是否只有一个字符,如果是,则在其前添加一个零:
function d2h(d) {
var s = (+d).toString(16);
if(s.length < 2) {
s = '0' + s;
}
return s;
}
一个不太明显的方法是:
function d2h(d) {
return (d / 256 + 1 / 512).toString(16).substring(2, 4);
}
但这太棘手了;我肯定会坚持第一个解决方案。
这也适用于大量数字。
function d2h(d) {
var h = (d).toString(16);
return h.length % 2 ? '0' + h : h;
}
function d2h(d) {
var h = (+d).toString(16);
return h.length === 1 ? '0' + h : h;
}
见演示。