【问题标题】:How do I stop my database from rounding to 16 decimal places?如何阻止我的数据库四舍五入到小数点后 16 位?
【发布时间】:2021-03-31 22:56:15
【问题描述】:

我正在尝试制作一个网页,当用户单击付款按钮时,它会从数据库表中的现有值中减去一定的金额。只是为了确认:我的页面确实这样做了。但是我的代码的意外行为是它减去了金额,但没有四舍五入。它将它四舍五入到小数点后 16 位,我只想要 2 位。请参阅下图(底行)以了解我的意思。

我曾尝试在 PHP 中使用 number_format() 和 round() 函数,但我不确定它们为什么不起作用。我是不是用错了?

这是下面的完整代码:

if(isset($_REQUEST['submit'])) {
  $SQL_query = "SELECT ROUND(SUM(Total), 2) AS sum FROM `order_details` WHERE `OrderID` = 95";
  $query_result = mysqli_query($connection, $SQL_query);

  while($row = mysqli_fetch_assoc($query_result)) {
  $total = $row['sum'];
  $number = floatval($total);
  }

  $SQL_Balance = "UPDATE Users SET Balance=(Balance-$number) WHERE UserID = 7";
  mysqli_query($connection, $SQL_Balance);


} 
 

【问题讨论】:

标签: php mysql sql


【解决方案1】:

要获得两位十进制数,您可以使用 ROUND 进行以下查询:

UPDATE Users SET Balance=(ROUND(Balance-$number, 2)) WHERE UserID = 7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-26
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多