我想知道如何输出一个带有2位小数的数字,而不会将原始数字四舍五入。
例如:
2229,999 -> 2229,99
我已经尝试过:
FORMAT(2229.999, 2)
CONVERT(2229.999, DECIMAL(4,2))
由于
答案 0 :(得分:337)
将数字格式设置为2位小数时,您有两个选项TRUNCATE
和ROUND
。您正在寻找TRUNCATE
功能。
示例:
没有四舍五入:
TRUNCATE(0.166, 2)
-- will be evaluated to 0.16
TRUNCATE(0.164, 2)
-- will be evaluated to 0.16
docs:http://www.w3resource.com/mysql/mathematical-functions/mysql-truncate-function.php
有四舍五入:
ROUND(0.166, 2)
-- will be evaluated to 0.17
ROUND(0.164, 2)
-- will be evaluated to 0.16
docs:http://www.w3resource.com/mysql/mathematical-functions/mysql-round-function.php
答案 1 :(得分:78)
您想使用TRUNCATE
命令。
https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_truncate
答案 2 :(得分:12)
怎么样
CAST(2229.999 AS DECIMAL(6,2))
得到带小数点后2位的小数
答案 3 :(得分:5)
只需使用格式(number,qtyDecimals) 样本:格式(1000,2) 结果1000.00
答案 4 :(得分:0)
这就是我用它的例子:
CAST(vAvgMaterialUnitCost.`avgUnitCost` AS DECIMAL(11,2)) * woMaterials.`qtyUsed` AS materialCost
答案 5 :(得分:0)
显示为小数 选择ifnull(format(100.00,1,'en_US'),0) 100.0
显示为百分比 选择concat(ifnull(format(100.00,0,'en_US'),0),'%') 100%