相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

0.1 + 0.2 == 0.3  ->  false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2         ->  0.30000000000000004
Run Code Online (Sandbox Code Playgroud)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

2798
推荐指数
28
解决办法
28万
查看次数

如何处理JavaScript中的浮点数精度?

我有以下虚拟测试脚本:

function test() {
  var x = 0.1 * 0.2;
  document.write(x);
}
test();
Run Code Online (Sandbox Code Playgroud)

这将打印结果0.020000000000000004,只应打印0.02(如果您使用计算器).据我所知,这是由于浮点乘法精度的误差.

有没有人有一个很好的解决方案,以便在这种情况下,我得到正确的结果0.02?我知道有类似的功能toFixed或舍入将是另一种可能性,但我想真正打印整个数字没有任何切割和舍入.只是想知道你们其中一个人是否有一些漂亮,优雅的解决方案.

当然,否则我会转到大约10位左右.

javascript floating-point

552
推荐指数
22
解决办法
34万
查看次数

如何在JavaScript中舍入数字?

在处理项目时,我遇到了一个由前员工创建的JS脚本,该脚本基本上以一种形式创建了一个报告

Name : Value
Name2 : Value2
Run Code Online (Sandbox Code Playgroud)

等等

问题是这些值有时可能是浮点数(具有不同的精度),整数,甚至是形式2.20011E+17.我想输出的是纯整数.不过,我不太了解很多JavaScript.我将如何编写一个有时采用浮点数并使它们成为整数的方法?

javascript floating-point numbers rounding

65
推荐指数
6
解决办法
9万
查看次数

Javascript:如何检索***号的小数位数?

我有小数一组串数字,例如:23.456,9.450,123.01...我需要找回小数每个号码的数量,因为他们知道至少有1位小数.

换句话说,该retr_dec()方法应返回以下内容:

retr_dec("23.456") -> 3
retr_dec("9.450")  -> 3
retr_dec("123.01") -> 2
Run Code Online (Sandbox Code Playgroud)

在这种情况下,尾随零计数为小数,与此相关问题不同.

在Javascript中是否有一个简单/交付的方法来实现这一点,或者我应该计算小数点位置并计算字符串长度的差异?谢谢

javascript string numbers decimal

56
推荐指数
4
解决办法
6万
查看次数