Long类型后端到前端精度丢失问题

在开发中,后端经常需要处理一些大数值的 Long 类型数据(id等)。但当这些数据通过接口传递到前端时,可能会出现精度丢失的问题。

**原因:**JavaScript 的 Number 类型遵循 IEEE 754 双精度浮点数标准,只能精确表示范围在 -(2^53 - 1)2^53 - 1 之间的整数(约等于 -90071992547409919007199254740991)。这意味着,任何超过这个范围的整数在 JavaScript 中都无法精确表示。例如:

console.log(9007199254740991);    // 输出:9007199254740991(准确)
console.log(9007199254740992);    // 输出:9007199254740992(准确)
console.log(9007199254740993);    // 输出:9007199254740992(精度丢失)

在后端(例如 Java)中,Long 类型的范围是 -2^632^63 - 1,即 -92233720368547758089223372036854775807。这种数值在 Java 中可以被精确表示,但当通过 JSON 传递到前端的 JavaScript 环境时,由于 JavaScript 数字精度限制,往往会出现 精度丢失

你可能感兴趣的:(前端,状态模式)