我在这里有这个功能:
function d2h(d) { return (+d).toString(16); }
所以说我放d2h(15);
。
这将返回f
。我需要它来返回0f
。
答案 0 :(得分:5)
最明显的方法是检查它是否只有一个字符,如果是,则在它之前加零:
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);
}
但这太棘手了;我绝对坚持第一个解决方案。
答案 1 :(得分:4)
使用String.padStart
:
(d).toString(16).padStart(2, '0')
答案 2 :(得分:2)
function d2h(d) {
var h = (+d).toString(16);
return h.length === 1 ? '0' + h : h;
}
请参阅DEMO。
答案 3 :(得分:0)
这也适用于大数字。
function d2h(d) {
var h = (d).toString(16);
return h.length % 2 ? '0' + h : h;
}