gpt4 book ai didi

mysql 精度只有十进制

转载 作者:行者123 更新时间:2023-11-29 18:31:30 26 4
gpt4 key购买 nike

仅当数字为小数且小数位数超过两位时,如何以 2 位小数精度在数据库中存储小数值就像

10.00 应存储 10

10.0 应存储 10

10 应存储 10

10.1 应存储 10.1

10.12 应存储 10.12

10.123 应存储 10.12

10.1234 应存储 10.12

到目前为止我已经尝试过这些,但没有一个起作用

FLOAT(20,2)
DOUBLE(20,2)
DECIMAL(20,2)

所有这些都将简单的 10 转换为 10.00

我想设置此列类型不想在查询中使用。

最佳答案

您混淆了某些内容的存储方式和呈现方式。在所有情况下,您都希望将值存储为 decimal(20, 2),因为您似乎只关心 2 位精度。

当你输出它时,你想将它转换为字符串。如果逗号在较大的数字中是可以接受的,那么类似于:

select (case when col = floor(col) then format(col, 0)
when col*10 = floor(col * 10) then format(col, 1)
else format(col, 2)
end) as col_as_string

关于mysql 精度只有十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45651687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com