我无法在变量小数长度上截断(或舍入)小数。 这是我的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
变量在没有截断的情况下返回,即表中的默认小数长度。与ROUND函数相同的行为。
变量decimal_length
是一个整数,对于表中的不同行是不同的。
有什么想法吗?
答案 0 :(得分:1)
因此获得可变长度小数的正确答案是使用 FORMAT 函数:
SELECT
FORMAT( `amount` , `decimal_length` ) AS truncated_decimal,
FROM table
确实采用舍入,但至少需要可变长度小数。
答案 1 :(得分:0)
使用修剪删除尾随零的
SELECT
TRIM(TRAILING '0' FROM TRUNCATE( `amount` , `decimal_length` ))
FROM table
答案 2 :(得分:0)
-- 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
将truncate函数与round函数混合
这是你在找什么?