【发布时间】:2015-11-26 18:24:37
【问题描述】:
在 SQL 中有一些实数的数据类型: 十进制(p,s) 数字(p,s) 漂浮 真实的
在十进制和数字中,我们可以在点后强制两位数。
例子:
1.234 -> 1.23
1.000 -> 1.00
1.1 -> 1.10
我正在寻找将浮点数保存到数据库的方法,强制最多 2 位,并且数据不会添加零来填充 2 位:
例子:
1.234->1.23
1.000-> 1
1.1 -> 1.1
【问题讨论】:
-
所以要确认你想要尾随 0,例如1.00
-
首先不要把存储和展示混为一谈。
1.00vs1.0对数据存储毫无意义。如果你想存储一个四舍五入的数字,你可以在你的INSERT中使用ROUND(value, 2)函数,或者直接将它存储并四舍五入以进行演示:SELECT ROUND(columnName, 2) FROM tableName -
这些是什么数据类型?浮点数、varchar、nvarchar 等?
-
您不会保存为 1.20 和 1.2。您保存该数字的二进制表示形式,并以带有或不带有尾随零的形式显示
-
@OrK :您似乎误解了正在发生的事情。数字以二进制形式存储,而不是字符串或十进制表示法。
0不是数据库中的人工制品,它是如何将其转换为字符串以进行演示的人工制品。CAST(1.2 AS DECIMAL(8,2))将将值强制为您想要的精度级别。之后,关于你如何显示数字有一个完全独立的问题。无论您的表示层是什么,都应该处理格式,而不是数据库。
标签: sql sql-server-2008