0

我在显示十进制数字时遇到问题,它有很多数字。

我的 sql 语句:

Select sum(HS$totalMoney)

结果 :

12132.123444343 

我想显示为 12132.12没有另一个数字

谢谢。

4

6 回答 6

2

如果您的逻辑是为了钱,您应该首先舍入不截断的值

select CONVERT(decimal(18,2),round(12132.123444343 ,2))12132.12

select CONVERT(decimal(18,2),round(12132.125944343 ,2))12132.13

于 2013-07-16T05:57:21.367 回答
1

试试这个——

SELECT CAST(12132.123444343 AS DECIMAL(10,2)) 
于 2013-07-16T05:36:15.720 回答
1

如果您使用的是 mysql,请使用自爆代码

SELECT TRUNCATE(sum(HS$totalMoney), 2);
于 2013-07-16T05:40:47.693 回答
1

这个查询解决了你的问题

SELECT CAST(12132.123444343 AS DECIMAL(10,2)) 

或者你可以使用

select CONVERT(decimal(18,2),round(12132.1255555 ,2))
于 2013-07-16T06:35:48.603 回答
1
SELECT CONVERT(decimal(21, 2), sum(HS$totalMoney))
-- This one will round in SQL Server but truncate in ASE 15 (which was available to me at the time)

SELECT CONVERT(decimal(21, 2), round(sum(HS$totalMoney), 2, 1))
-- This one uses a variant of ROUND supported by SQL Server, but not ASE 15 (and will truncate the third and subsequent decimal places).
于 2013-07-16T05:35:45.297 回答
1

round 函数有一个函数参数来截断而不是 round:

select round(12132.123444343 , 2, 1)

从这里:http: //msdn.microsoft.com/en-us/library/ms175003.aspx

于 2013-07-22T00:01:06.203 回答