簡體   English   中英

如何阻止我的數據庫四舍五入到小數點后 16 位?

[英]How do I stop my database from rounding to 16 decimal places?

我正在嘗試制作一個網頁,當用戶單擊付款按鈕時,它會從數據庫表中的現有值中減去一定的金額。 只是為了確認:我的頁面確實這樣做了。 但是我的代碼的意外行為是它減去了金額,但沒有四舍五入。 它將它四舍五入到小數點后 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);


} 
 

要獲得兩位十進制數,您可以將 ROUND 與以下查詢一起使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM