我有一个表达式:
Select (2345789 * 39.456) / 100 输出为925554.5078400。
我想要显示925554.50,即小数点后的2个值。
如果我使用round
Select round((2345789 * 39.456)/100, 1)输出为925554.5000000。但我想要小数点后的两位数。如何做到这一点?
发布于 2009-07-02 10:40:50
这是显而易见的,但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))发布于 2010-12-11 12:52:39
我也有使用截断值的解决方案
Select (2345789 * 39.456)/100 result-925554.5078400
select cast (ROUND((2345789 * 39.456)/100 ,2,1)as decimal(18,2)) result-925554.50
select cast (ROUND((2345789 * 39.456)/100 ,3,2)as decimal(18,3)) result-925554.507
select cast (ROUND((2345789 * 39.456)/100 ,4,3)as decimal(18,4)) result-925554.5078好的。我希望你能理解这一点。
发布于 2009-07-02 10:40:11
尝试(未测试):
SELECT CAST(number as decimal(18,2))https://stackoverflow.com/questions/1073658
复制相似问题