【问题标题】:How to set up to 2 digits after point如何在点后设置最多 2 位数字
【发布时间】: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.00 vs 1.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


【解决方案1】:

使用ROUND 函数。

SELECT round(field,2)
FROM yourtable

输入

field
1.234
1.000
1.1

输出

1.23
1
1.1

SQL 小提琴:http://sqlfiddle.com/#!3/f08ee/26/0

【讨论】:

  • 谢谢,在 MSSQL 中它的工作方式不同。圆函数在点后 2 位用零填充。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-27
相关资源
最近更新 更多