在 JavaScript 中将十六进制转换为浮点数

2023-11-29

我想将带有分数的以 10 为底的数字转换为以 16 为底的数字。

var myno = 28.5;

var convno = myno.toString(16);
alert(convno);

那里一切都很好。现在我想将其转换回十进制。

但现在我不能写:

var orgno = parseInt(convno, 16);
alert(orgno);

因为它不返回小数部分。

我不能使用 parseFloat,因为根据 MDC,parseFloat 的语法是

parseFloat(str);

如果我必须转换回 int,那不会有问题,因为 parseInt 的语法是

parseInt(str [, radix]);

那么有什么替代方案呢?

免责声明:我认为这是一个微不足道的问题,但谷歌搜索没有给我任何答案。

This question made me ask the above question.


另一种可能性是单独解析数字,将字符串分成两部分,并在转换过程中将两部分都视为整数,然后将它们加回一起。

function parseFloat(str, radix)
{
    var parts = str.split(".");
    if ( parts.length > 1 )
    {
        return parseInt(parts[0], radix) + parseInt(parts[1], radix) / Math.pow(radix, parts[1].length);
    }
    return parseInt(parts[0], radix);
}

var myno = 28.4382;
var convno = myno.toString(16);
var f = parseFloat(convno, 16);
console.log(myno + " -> " + convno + " -> " + f);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JavaScript 中将十六进制转换为浮点数 的相关文章

随机推荐