我对MySQL很陌生,需要一些基本的帮助。
我需要对小数进行四舍五入,例如:
21,4758 应该变成 21,48
0,2250 应该变成 0,22
23,0850 应该变成 23,08
22,9950 应该变成 22,99
我尝试了很多方法但都无法实现。
谢谢。
试试这个:
// round the value to two decimal places
SELECT ROUND(<YOUR_FIELD>, 2) field FROM <YOUR_TABLE>
// use truncate if you don't wan't to round the actual value
SELECT TRUNCATE(<YOUR_FIELD>, 2) field FROM <YOUR_TABLE>
// you can also use round or truncate depending whether the third decimal is > 5
SELECT IF(SUBSTR(<YOUR_FIELD>, 5, 1) > 5,
ROUND(<YOUR_FIELD>, 2),
TRUNCATE(<YOUR_FIELD>, 2)) field
FROM <YOUR_TABLE>;
以上并非完整解决方案,但或许能指引您朝正确的方向前进。
请阅读mysql round()
和mysql truncate()
的文档。
DECLARE @old decimal(38, 10)
DECLARE @p decimal(38, 10)
SET @p = 21.4758
SET @p = @p * 100
SET @p = @p - 0.01
SET @p = ROUND(@p, 0)
SET @p = @p / 100.0
SELECT @p
truncate
而不是round
,尽管你也想将值四舍五入。 - Cyclonecode