gpt4 book ai didi

php - 插入数据库后小数四舍五入

转载 作者:行者123 更新时间:2023-11-29 02:45:16 24 4
gpt4 key购买 nike

我在使用 PHP 将小数插入 MySQL 时遇到了问题。该数字被格式化为货币,存储在 session 变量中。

$_SESSION['total'];

使用 number_format 将点替换为逗号可以得到正确的输出:

$amount= number_format((float)$_SESSION['total'], 2, ",", '');
echo $amount;
//output = 2,85

现在我需要将变量 $amount 插入到数据库中,操作如下:

$query = "INSERT INTO testtable VALUES" . "('$amount', 'NULL')";
$result = $con->query($query);

插入时,数字插入为“2,00”而不是“2,85”。我也尝试在没有 number_format 的情况下这样做,但我得到了相同的结果。

该行设置为十进制(10,2)。

怎么可能变量 echo 是正确的,但插入四舍五入呢?

最佳答案

number_format() 的输出是一个字符串,问题是 MySQL/php 不知道逗号 , 作为小数分隔符,所以你的字符串 2,85 通过使用字符串中作为有效数字字符的第一个字符转换为数字。

在进行任何计算或数据库插入之前,您应该将字符串转换为实数,方法是将 , 替换为 并将其转换为 float :

$number = (float) str_replace(',', '.', $amount);

如果您的 session 变量包含实际数字而不是字符串,您应该直接使用它们。

请注意,使用 float 可能会导致精度问题/舍入错误。如果是这种情况,您应该只使用整数(例如,美分表示金额,所以 285 而不是 2.85)。

关于php - 插入数据库后小数四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43514964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com