如何存储在数据库十进制值仅如果数字是十进制,拥有超过两位小数 像MySQL的精度只有小数
2小数精度10.00应存储
10.0应存储
应存储
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.00
我想设置此列类型不希望在查询中使用。
如何存储在数据库十进制值仅如果数字是十进制,拥有超过两位小数 像MySQL的精度只有小数
2小数精度10.00应存储
10.0应存储
应存储
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.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
我想设置这个列类型不想在查询中使用。 –
没有DATATYPE可以满足您的要求。 –
“10.10”应存储为什么? –
应该是10.1 –