我想将带有分数的以 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(使用前将#替换为@)