我无法在变量十进制长度上截断(或舍入)小数点。下面是我的MySQL查询:
SELECT
TRUNCATE( `amount` , `decimal_length` ) AS truncated_decimal,
FROM table
-- sample data
amount decimal length
123.123 0
456.456 1
789.789 2
--expected outcome
truncated_decimal
123
456.4
789.78
--current outcome (wrong)
truncated_decimal
123.123
456.456
789.789返回的truncated_decimal变量不需要截断,即表中默认的十进制长度。具有圆函数的相同行为。变量decimal_length是一个针对表中不同行的整数。
有什么想法吗?
发布于 2017-03-31 06:52:29
因此,获得可变长度小数的正确答案是使用格式的函数:
SELECT
FORMAT( `amount` , `decimal_length` ) AS truncated_decimal,
FROM table它确实适用于四舍五入,但至少您可以得到所需的可变长度小数。
发布于 2016-05-31 19:06:32
使用修剪移除尾随零点
SELECT
TRIM(TRAILING '0' FROM TRUNCATE( `amount` , `decimal_length` ))
FROM table发布于 2016-05-31 19:10:04
-- Example with a field name
SELECT
ROUND( `field_name` , 2 ) AS truncated_decimal
FROM table
-- Example with just a number
SELECT
ROUND( '285,1234' , 2 ) AS truncated_decimal
==> 285,12你把截断函数和圆形函数混为一谈
这就是你要找的吗?
https://stackoverflow.com/questions/37553161
复制相似问题