Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免JavaScript中的浮点显示错误_Javascript - Fatal编程技术网

如何避免JavaScript中的浮点显示错误

如何避免JavaScript中的浮点显示错误,javascript,Javascript,假设您有一些数字要显示如下: var numbers = 31.480000000000004; //this will be the numbers numbers = numbers.toFixed(2); console.log(parseFloat(numbers )); 使用“toFixed”可以简单地使它变得更好,但这并不是预期的结果。有没有什么简单的方法可以输出下面这段代码中预期的数字 谢谢 $('body')。追加('p>什么也不做:'); var a=10

假设您有一些数字要显示如下:

var numbers = 31.480000000000004; //this will be the numbers 
    numbers = numbers.toFixed(2);
    console.log(parseFloat(numbers ));
使用“toFixed”可以简单地使它变得更好,但这并不是预期的结果。有没有什么简单的方法可以输出下面这段代码中预期的数字

谢谢

$('body')。追加('p>什么也不做:

'); var a=100-68.7; $('body')。追加(''+a+'

'); var b=100-68.52; $('body')。追加('p>'+b+'

'); var c=100-6; $('body')。追加('p>'+c+'

'); $('body')。追加('hr>'); $('body')。追加('p>使用toFixed:

'); var a1=100-68.7; $('body').append(''+a1.toFixed(2)+'

'); var b1=100-68.52; $('body').append(''+b1.toFixed(2)+'

'); var c1=100-6; $('body').append(''+c1.toFixed(2)+'

'); $('body')。追加('hr>'); $('body')。追加('预期结果:

'); $('body')。追加('p>31.3

'); $('body')。追加('31.48

'); $('body')。追加('p>94

')
$('body')。追加('p>什么也不做:

'); var a=100-68.7; $('body')。追加(''+a+'

'); var b=100-68.52; $('body')。追加('p>'+b+'

'); var c=100-6; $('body')。追加('p>'+c+'

'); $('body')。追加('hr>'); $('body')。追加('p>使用toFixed:

'); var a1=100-68.7; $('body')。追加(''+a1.toFixed(2)。替换(/\.?0+$/,'')+'

'); var b1=100-68.52; $('body')。追加(''+b1.toFixed(2)。替换(/\.?0+$/,'')+'

'); var c1=100-6; $('body')。追加(''+c1.toFixed(2)。替换(/\.?0+$/,'')+'

'); $('body')。追加('hr>'); $('body')。追加('预期结果:

'); $('body')。追加('p>31.3

'); $('body')。追加('31.48

'); $('body')。追加('p>94

')
toFixed(2)
返回的字符串周围使用
parseFloat

var a1=100-68.7;
$('body').append(''+parseFloat(a1.toFixed(2))+'

'); var b1=100-68.52; $('body').append(''+parseFloat(b1.toFixed(2))+'

'); var c1=100-6; $('body').append(''+parseFloat(c1.toFixed(2))+'

');
只需将您的值包装在“parseFloat”中

$('body')。追加('hr>');
$('body')。追加('p>使用toFixed:

'); var a1=100-68.7; $('body').append(''+parseFloat(a1.toFixed(2))+'

')
您可以像这样使用
parseFloat()

var numbers = 31.480000000000004; //this will be the numbers 
    numbers = numbers.toFixed(2);
    console.log(parseFloat(numbers ));
这样你就可以固定到2,然后你就可以解析它了

这应该是可行的。

总有一些方法可以让代码可读

常数a=100-68.7,
b=100-68.52,
c=100-6;
const format=n=>n.toLocaleString('en'{
最大分数位数:2,
使用分组:false
});

log([a,b,c].map(格式))如果您只是不喜欢小数部分后面的零,那么您可以在调用toFixed后简单地将其删除。为了使整个代码更加简洁,您可以将其转换为自己的一个小函数。尝试在控制台中输入
parseFloat(1-4.6)
。使用parseFloat+toFixed进行了很好的尝试。谢谢