10

我这里有这个功能:

function d2h(d) { return (+d).toString(16); }

所以说我放d2h(15);

这将返回f。我需要它返回0f

4

4 回答 4

27

使用String.padStart

(d).toString(16).padStart(2, '0')
于 2018-02-07T14:30:05.237 回答
8

最明显的方法是检查它是否只有一个字符,如果是,则在其前添加一个零:

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);
}

但这太棘手了;我肯定会坚持第一个解决方案。

于 2013-06-20T02:24:55.580 回答
5

这也适用于大量数字。

function d2h(d) {
    var h = (d).toString(16);
    return h.length % 2 ? '0' + h : h;
}
于 2017-01-25T13:24:17.210 回答
2
function d2h(d) {
    var h = (+d).toString(16);
    return h.length === 1 ? '0' + h : h;
}

演示

于 2013-06-20T02:27:47.210 回答