最小化并在javascript中舍入十六进制

时间:2014-04-08 20:02:28

标签: javascript hex rounding

我阅读了以下帖子,但这不是我的问题或问题的答案:Hexadecimal Floating-Point,roundIng

给定一个浮点数,如何将其四舍五入到最接近的整数十六进制数,然后在javascript中将它蛤蜊在o和FF之间?例如,转换为十六进制后:

1e.fffffffffffe -> 1f
1e.111111111111 -> 1e
ff.fffffffffffe -> ff
-0.111111111111 -> 00

修改 我想出了一些半烤功能,有人关心改进吗?

function roundDblDigitHex(x) {
    x = Math.round(x);
    if (x < 0) x = 0;
    if (x > 255) x = 255;
    x = x.toString(16);
    if (x.length === 1) x = '0'+x;
    return x;
}

1 个答案:

答案 0 :(得分:1)

我喜欢你的解决方案(最后,我也会使用Math.round())。这是我的建议(有点短,但代码相同):

function roundDblDigitHex(x) {
    x = Math.min(Math.max(Math.round(x), 0), 255);

    return ("0" + x.toString(16)).slice(-2);
}