DB中字段的数据类型为FLOAT,值为18.7.我想在18.70上存储并显示在页面上.每当我输入额外的0时,它仍然只存储为18.7
如何存储额外的0?我可以更改字段的数据类型.
在一FLOAT列中,实际MySQL存储的18.7是:
01000001 10010101 10011001 10011010
Run Code Online (Sandbox Code Playgroud)
从数据库检索并转换回您的显示格式,是18.7.
实际上,存储的值是由十进制数表示的二进制小数18.70000076293945,您可以通过发出以下查询来查看:
CREATE TABLE t_f (value FLOAT);
INSERT
INTO t_f
VALUES (18.7);
SELECT CAST(value AS DECIMAL(30, 16))
FROM t_f;
Run Code Online (Sandbox Code Playgroud)
IEEE-754数字表示将它们存储为二进制分数,因此类似的值0.1只能用连续分数表示,因此不准确.
DECIMAL另一方面,存储十进制数字,将数字打包9成4字节.