如何截断sql server 2000中的十进制值

pri*_*kar 0 sql-server

我有一个表达:

Select (2345789 * 39.456) / 100 
Run Code Online (Sandbox Code Playgroud)

输出是925554.5078400.

我想显示925554.50小数点后的2个值.

如果我使用圆形

Select round((2345789 * 39.456)/100, 1)
Run Code Online (Sandbox Code Playgroud)

输出是925554.5000000.但我想要小数点后正好2位数.怎么做?

Luk*_*keH 5

说明显,但925554.5000000和925554.50是相同的数字.

如果要显示带有两个小数位的数字,则这是UI代码的问题,而不是数据库的问题.

话虽如此,如果您必须在数据库本身中执行此操作,请尝试以下操作:

-- 1 decimal place
SELECT CAST(ROUND(@yourNumber, 1, 1) AS DECIMAL(18, 1))

-- 2 decimal places
SELECT CAST(ROUND(@yourNumber, 2, 1) AS DECIMAL(18, 2))

-- 3 decimal places
SELECT CAST(ROUND(@yourNumber, 3, 1) AS DECIMAL(18, 3))

-- 4 decimal places
SELECT CAST(ROUND(@yourNumber, 4, 1) AS DECIMAL(18, 4))
Run Code Online (Sandbox Code Playgroud)