首页 > 解决方案 > 哪些数字可以安全地转换为 JavaScript 数字类型?

问题描述

给定一个发送小数点后 4 位或 6 位数字的后端,这些数字是否总是会完全转换为 JavaScript 数字类型(在 JSON 反序列化期间)?哪些数字会引起问题?

提示:假设后端是精确的,没有舍入错误等。我需要了解前端可能在什么时候出现问题。

标签: javascriptnumbers

解决方案


伯吉评论:

JS(双精度浮点)数字具有大约 16 位十进制数字的精度。小数点前后有多少无所谓,两边都要算。因此,只要您在该点之前有 <=10 位数字并且在该点之后有 <= 6 位数字,就可以了。– 贝尔吉

然而,正如 Eric Postpischil 在对相关问题的回答中所说,a doubleorfloat格式具有“一些十进制数字是草率的术语”。因为doubleandfloat通常对应于二进制数,而不是十进制数(更具体地说,分别是 IEEE 754 binary64 和 binary32),并且并非所有十进制数都可以无损地转换为二进制数。


推荐阅读