相关疑难解决方法(0)

Javascript不正确地倍增,导致不正确的舍入

当我拉出我想要乘以的值时,它们就是字符串.所以我拉它们,将它们解析为浮点数(以保留小数位),然后将它们相乘.

LineTaxRate = parseFloat(myRate) * parseFloat(myQuantity) * parseFloat(myTaxRateRound);
Run Code Online (Sandbox Code Playgroud)

这对99%的发票有效,但我发现了一个非常奇怪的问题.

当它乘以:78*7*0.0725

Javascript返回:39.584999999999994

当你通常在计算器中进行数学运算时:39.585

完成所有操作后,我会使用.toFixed(2)获取该数字并将其四舍五入.

因为Javascript正在返回该数字,所以它没有四舍五入到所需的值:$ 39.59

我尝试了Math.round()总数,但我仍然得到相同的数字.

我想过将数字四舍五入到小数点后三位,但这对我来说似乎很笨拙.

我到处搜索,我看到的是人们提到parseFloat失去了它的精度,并使用.toFixed,但是在上面的例子中,这没有帮助.

这是我为重新创建问题而制作的测试脚本:

<script>
var num1 = parseFloat("78");
var num2 = parseFloat("7");
var num3 = parseFloat("0.0725");
var myTotal = num1 * num2 * num3;
var result = Math.round(myTotal*100)/100

alert(myTotal);
alert(myTotal.toFixed(2));
alert(result);
</script>
Run Code Online (Sandbox Code Playgroud)

javascript math parsefloat

5
推荐指数
1
解决办法
7333
查看次数

Javascript toFixed() 方法中的舍入

我知道javascript中的toFixed()方法将数字转换为字符串,保留指定的小数位数,就像下面所示的代码,它将小数点后的位数设置为2

\n\n

我的问题是:必要时是否对数字进行四舍五入。如下面的代码所示,我将转换数字:0.075。我认为 0.075 舍入应该是 0.08,因为“5 向上”。然而,在下面的第一种情况下看起来很奇怪。所以我很困惑。

\n\n

\r\n
\r\n
var a=0.25*0.3;\r\nvar res1 = a.toFixed(2);\r\nconsole.log(res1);\r\n//Output: a is 0.07 (Is there something wrong?)\r\n\r\nvar b=0.025*3;\r\nvar res2= b.toFixed(2);\r\nconsole.log(res2);\r\n//Output\xef\xbc\x9ab is 0.08
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n\n

我知道这个问题可以通过使用 Math.js 来解决。然而,我只是想知道问题的原因\xef\xbc\x9f 是 toFixed() 方法的问题还是javascript中数据类型的问题。

\n

javascript decimal rounding

5
推荐指数
1
解决办法
1726
查看次数

使用toFixed(2)和数学轮来获得正确的舍入

我想找到一个函数,它将返回这种格式化的值:

1.5555 => 1.55
1.5556 => 1.56
1.5554 => 1.55
1.5651 => 1.56
Run Code Online (Sandbox Code Playgroud)

toFixed()和math round返回此值:

1.5651.fixedTo(2) => 1.57
Run Code Online (Sandbox Code Playgroud)

这将有助于金钱四舍五入.

javascript rounding

3
推荐指数
1
解决办法
1万
查看次数

如何在javascript中获得1.450 = 1.5?(舍入到小数点后1位)

可能重复:
你如何在Javascript中舍入到1位小数?

我的值是1.450,我必须将它舍入到小数点后1位.

我希望在Javascript中1.450 = 1.5可以任何机构修复此请.

javascript

2
推荐指数
1
解决办法
668
查看次数

标签 统计

javascript ×4

rounding ×2

decimal ×1

math ×1

parsefloat ×1