0

我在 PHP/MySQL 中使用“number_format”函数来表示“金钱”属性。

属性本身存储在我的数据库中。

  Select account_balance from my_table where login = 'xxxxxx';
  $correct_account_balance = number_format($account_balance,
  ['my_balance'],2);  }

换句话说:符号“ 2 ”将在小数点后添加两个额外的数字,如下: 10.00 (例如)

此代码工作正常............除了一个小问题:如果小数点后的金额末尾有一个零,它不会显示!

例如:如果金额是 10 美元和 35 美分,它会正确显示: 10.35

但是,如果金额为 10 美元和 30 美分,则显示为:10.3 (而不是: 10.30

原因是:在我使用“number_format”函数转换它之后,我的程序还对 account_balance 执行算术运算。

例如 :

     $correct_account_balance -= 0.25   (this will subtract 0.25 each time the program is executed)

这就是为什么在实际金额末尾有一个“零”(例如:10.30)时,它会显示为: 10.3

有没有办法解决这个问题?谷歌似乎不知道;

4

1 回答 1

2

原因是:在我使用“number_format”函数转换它之后,我的程序还对 account_balance 执行算术运算。

对其进行操作后,您需要重新运行number_format

在它准备好显示之前,你真的不应该运行它,它添加到更大数字的逗号会极大地扰乱你的计算。例如,以下内容:

<?php

$number = 100000.30;
$number = number_format($number, 2);
$number -= 0.25;
echo number_format($number, 2);

结果输出:

99.75

这意味着您刚刚因类型转换错误而从客户那里窃取了 99,900.55 美元。

于 2015-04-27T17:50:39.787 回答