PHP 處理金額

2021-09-12 23:54:18 字數 587 閱讀 3757

涉及到金額的**,一定要謹慎處理。剛好最近做了相關的功能,下面大概說一下。

php 的浮點數是不能精確計算的,具體的可以看這篇文章。所幸的是,金額一般不會有太多的小數。那麼儲存的時候呢,一言以蔽之,以為單位進行儲存。在 mysql 中,以int型別儲存就行了(視情況選擇字段型別)。

上面提到以為單位儲存,也就是 1 元儲存為 100 分。可以使用 php 內建的 bc math 系列函式進行計算。日後會再寫一篇詳解。

下面是格式化金額的例項

/**

* 格式化金額

* @param $price

* @return string

*/public function formatprice($price)

return number_format(bcdiv($price, 100, 2), 2);

}

參考資料: 關於php浮點數你應該知道的(all 『bogus』 about the float in php)、php浮點數的乙個常見問題的解答、bc math。

PHP 金額表示

phpnumber format float number int decimals string dec point string thousands sep 格式化數字 引數1 浮點型數字 必需 引數2 小數字數 可選 引數3 小數點用什麼字元 可選 引數4 千分符用什麼字元 可選 num 12...

php 數字金額轉漢字大寫金額

數字金額轉漢字金額 測試 public function testnum 數字金額轉漢字金額 param float money 數字金額 param int type 已棄用 return string 漢字金額 public function numtormb money type 0 mone...

php中獲取數字金額 php 中對金額數值處理

在開發過程中,我們經常需要處理一些金額數值,一般將其格式化為保留兩位小數點。在php中,有number format round 這麼兩個函式可以使用。最直接的是round 這個函式,其作用是對浮點數進行四捨五入。round x,prec 第乙個引數是需要進行四捨五入的數值,第二個引數是要保留的小數...