javascript-将数字转换为精度为2的浮点
我正在使用Javascript,需要将0.009之类的数字转换为0.90 我尝试执行以下操作,但它只返回0.9:javascript-将数字转换为精度为2的浮点,javascript,floating-point,precision,Javascript,Floating Point,Precision,我正在使用Javascript,需要将0.009之类的数字转换为0.90 我尝试执行以下操作,但它只返回0.9: parseFloat((testValue*100).toFixed(2)) 对于像0.0055这样的数字,它给了我0.55,但是对于0.009/0.008/0.007等,它给了我0.9/0.8/0.7,或者换言之,小数后精度为1的数字 如何使其在小数点后返回2精度?例如,我希望代码返回0.90表示0.009,0.80表示0.008,以此类推 任何帮助都将不胜感激。只需调用toFix
parseFloat((testValue*100).toFixed(2))
对于像0.0055这样的数字,它给了我0.55,但是对于0.009/0.008/0.007等,它给了我0.9/0.8/0.7,或者换言之,小数后精度为1的数字
如何使其在小数点后返回2精度?例如,我希望代码返回0.90表示0.009,0.80表示0.008,以此类推
任何帮助都将不胜感激。只需调用toFixed(2)
,而无需调用parseFloat()
parseFloat()
正在将格式化的数字转换回浮点数,它们的精度没有不同
let num=.009;
console.log((num*100).toFixed(2));
log(parseFloat((num*100).toFixed(2))代码>只需调用toFixed(2)
,而不调用parseFloat()
parseFloat()
正在将格式化的数字转换回浮点数,它们的精度没有不同
let num=.009;
console.log((num*100).toFixed(2));
log(parseFloat((num*100).toFixed(2))代码>将数字格式化为所需的位数后,不要调用parseFloat()
。将其从格式化字符串转换回数字,数字没有特定的精度;在Javascript中,它的精度为53位,转换为十进制的15到17位,并且在小数部分始终显示为零。如果你想以另一种精度显示一个数字,你必须使用一个字符串:num.toFixed(2)
(不带parseFloat
,这将把它转换回float,它的精度将再次达到15-17,并且在小数部分不显示尾随的零)。我能得到上面的一个例子吗?^^^这是(阿马丹的评论)。数字是数字,4.0
与4.000
相同,后者与4.00000000
相同。你如何决定写下它们是另一回事。作为一个数字,.9
和.90
之间没有区别。在用你想要的位数格式化数字后,不要调用parseFloat()
。将其从格式化字符串转换回数字,数字没有特定的精度;在Javascript中,它的精度为53位,转换为十进制的15到17位,并且在小数部分始终显示为零。如果你想以另一种精度显示一个数字,你必须使用一个字符串:num.toFixed(2)
(不带parseFloat
,这将把它转换回float,它的精度将再次达到15-17,并且在小数部分不显示尾随的零)。我能得到上面的一个例子吗?^^^这是(阿马丹的评论)。数字是数字,4.0
与4.000
相同,后者与4.00000000
相同。你如何决定写下它们是另一回事。作为一个数字,.9
和.90
之间没有区别。如果你设置num=1024.009;您的输出将分别为102400.90和102400.9。我想这是不正确的。num的值可以是任何数字,您的解决方案仅适用于0以下的数字。我的解决方案对所有数字都一视同仁。它乘以100,然后用2位小数显示结果,就像问题所说的那样。您认为1024.009
的输出应该是什么?根据您的解决方案,102400.90和102400.9。只要试着在控制台上检查一下就可以了;您的输出将分别为102400.90和102400.9。我想这是不正确的。num的值可以是任何数字,您的解决方案仅适用于0以下的数字。我的解决方案对所有数字都一视同仁。它乘以100,然后用2位小数显示结果,就像问题所说的那样。您认为1024.009
的输出应该是什么?根据您的解决方案,102400.90和102400.9。试着在控制台上检查一下。