我无法对变量十进制长度进行截断(或舍入)十进制。
这是我的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是一个整数,该整数对于表中的不同行是不同的。

有任何想法吗?

最佳答案

因此,获取可变长度小数的正确答案是使用FORMAT函数:

SELECT
FORMAT( `amount` , `decimal_length` ) AS truncated_decimal,
FROM table


它确实与舍入一起使用,但是至少您获得了所需的可变长度小数。

08-19 15:51