相关疑难解决方法(0)

为什么 JavaScript 中十进制的最大位数只有 16

不久前我在测试一些 HTML 表单时遇到了这个问题。JavaScript Number 中带小数点的最大位数仅为 16

我已经尝试了以下

var x = 12345678912345.6789
Run Code Online (Sandbox Code Playgroud)

x 是 12345678912345.68 -仅 16 位

var x = 123456789123.6789
Run Code Online (Sandbox Code Playgroud)

x 是 123456789123.6789 -仅 16 位

new Number(12345678912345.6789)
Run Code Online (Sandbox Code Playgroud)

12345678912345.68 -仅限 16 位数字

new Number(123456789123.6789)
Run Code Online (Sandbox Code Playgroud)

123456789123.6789 -仅限 16 位数字

如果计算总位数,它们是16。如果在小数点前增加位数,则小数点后的位数会四舍五入

相似地

new Number(.12345678912367890)
Run Code Online (Sandbox Code Playgroud)

是 0.1234567891236789 -仅 16 位(注意缺少尾随 0)

这让我推断出一个数字中只能有 16 位数字,其中包含小数。如果我尝试添加更多数字,数字就会开始四舍五入

我还观察到,当我在 ASP.NET MVC 中将一个带十进制数的数字序列化为 JSoN 时,它还会将该数字转换为 Max 16 Digits 并将其余部分四舍五入

我的问题:为什么?

javascript precision asp.net-mvc json.net

4
推荐指数
1
解决办法
2746
查看次数

标签 统计

asp.net-mvc ×1

javascript ×1

json.net ×1

precision ×1