不久前我在测试一些 HTML 表单时遇到了这个问题。 JavaScript 中带小数点的数字的最大位数仅为 16
我尝试过以下方法
var x = 12345678912345.6789
x 是 12345678912345.68 -仅 16 位数字
var x = 123456789123.6789
x 是 123456789123.6789 -仅 16 位数字
new Number(12345678912345.6789)
12345678912345.68 -仅 16 位数字
new Number(123456789123.6789)
123456789123.6789 -仅 16 位数字
如果计算总位数,则为 16。如果增加小数点前的位数,则小数点后的位数会四舍五入
相似地
new Number(.12345678912367890)
是 0.1234567891236789 -仅 16 位数字(注意尾随 0 丢失)
这让我推断出带有小数的数字只能有 16 位数字。如果我尝试添加更多数字,数字就会开始四舍五入
我还观察到,当我在 ASP.NET MVC 中将带有小数的数字序列化为 JSoN 时,它还会将该数字转换为最大 16 位数字并对其余数字进行四舍五入
我的问题:为什么?