Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL截断或四舍五入,小数长度可变_Mysql_Variables_Rounding_Truncate - Fatal编程技术网

MySQL截断或四舍五入,小数长度可变

MySQL截断或四舍五入,小数长度可变,mysql,variables,rounding,truncate,Mysql,Variables,Rounding,Truncate,我无法在可变小数长度上截断(或四舍五入)小数。 下面是我的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.

我无法在可变小数长度上截断(或四舍五入)小数。 下面是我的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
My
truncated_decimal
变量返回时不进行截断,即表中的默认十进制长度。与ROUND函数的行为相同。 变量
decimal\u length
是一个整数,对于表中的不同行,它是不同的


有什么想法吗?

使用Trim删除尾随零位

SELECT 
TRIM(TRAILING '0' FROM TRUNCATE( `amount` , `decimal_length` ))
FROM table

使用Trim删除尾随零位

SELECT 
TRIM(TRAILING '0' FROM TRUNCATE( `amount` , `decimal_length` ))
FROM table
你把截断函数和取整函数弄混了

这就是你要找的吗

你把截断函数和取整函数弄混了


这就是您要寻找的吗?

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

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

它确实与舍入有关,但至少需要可变长度小数

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

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

它确实与舍入有关,但至少您会得到所需的可变长度小数

您可以分享您传递的示例值、您得到的结果以及您试图得到的这些值的结果吗?当我在第二个表中有长度并加入时。。添加示例数据似乎很有效。xQbert我无法打开您的sqlfiddle链接,无法加载数据。您可以分享您传递的示例值、您得到的结果以及您试图得到的这些值的结果吗?当我在第二个表中有长度并连接时。。添加示例数据后,它似乎可以工作。xQbert我无法打开您的sqlfiddle链接,无法加载数据。我没有混合-我想截断或舍入到可变小数长度。我没有混合-我想截断或舍入到可变小数长度。它的结尾不总是“0”。我需要可变长度的修剪。结尾不总是“0”。我需要可变长度的修剪。