如何在MySQL(5.7)中四舍五入JSON数据列中的浮点值?

我很难找到一个好的资源来知道如何解决我的问题。

这是发生了什么:

CREATE TABLE someTable (jdoc JSON);
INSERT INTO someTable VALUES('{"data":14970.911769838869}');


然后选择行:

SELECT * from someTable;


我用不同的最终数字返回数据:
'{"data": 14970.911769838867}'

知道为什么会这样吗?我可以通过某种方式调整数据以防止出现这种情况吗?还是存在舍入精度问题?

最佳答案

双精度浮点的精度约为16位十进制数字。您的电话号码有17位数字,因此不能完全用浮点数表示,最后一位数字会出现舍入错误。

How many significant digits have floats and doubles in java?

问题是关于Java的,但是几乎所有东西都使用相同的IEEE 754浮点格式,因此答案通常适用。

09-30 17:29
查看更多