gpt4 book ai didi

php - 从 mysql 读取和使用十进制数据类型时的数学问题

转载 作者:行者123 更新时间:2023-11-29 23:23:41 27 4
gpt4 key购买 nike

我在mysql数据库中以decimal(15,2)数据类型存储了2个十进制货币。它有 2 列。一种是 DR,另一种是 CR

当我使用 php 读取所有数据并减去总 DR-CR 时,有时我会得到带有多个小数的结果,例如 8505.0800000001。为什么会发生这种情况?

    $total_dr=0;
$total_cr=0;
$balance=0;

$result=mysqli_query($link, $query);
while ($row = mysqli_fetch_assoc($result))
{

$total_dr=$total_dr+$row['dr'];
$total_cr=$total_cr+$row['cr'];

$balance=$total_dr-$total_cr;

echo '
<tr>
<td align="right">'.$total_dr.'</td>
<td align="right">'.$total_cr.'</td>
<td align="right">'.$balance.'</td>
</tr>
';

}

这是我得到的一些输出

533026.19   493497.31   39528.88
533026.19 502427.63 30598.56
533026.19 511367.07 21659.12
533026.19 520268.57 12757.62
533026.19 524521.11 8505.0800000001
533026.19 528773.65 4252.54
533026.19 533026.19 0

最佳答案

PHP 本身不支持 DECIMAL(15,2) 格式。相反,它使用 float 。

我的建议是将所有数字设为 int 并在最后一刻进行小数计算。

类似于:

echo number_format($balance / 100, 2);

关于php - 从 mysql 读取和使用十进制数据类型时的数学问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27110310/

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