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

2021-10-22 21:59:05 字數 1042 閱讀 1685

在開發過程中,我們經常需要處理一些金額數值,一般將其格式化為保留兩位小數點。 在php中,有number_format(), round()這麼兩個函式可以使用。

最直接的是round()這個函式,其作用是對浮點數進行四捨五入。

round(x, prec), 第乙個引數是需要進行四捨五入的數值,第二個引數是要保留的小數點位數,例如round(3.158, 2)的結果是3.16, 這裡需要注意的是引數x不能是'12,300.2'這樣的字串。

這裡要介紹的另乙個函式是number_format(),其作用是對數字進行格式化,注意這裡的格式化是千位分組,返回的結果是字串。

number_format(number, decimals, decimalpoint, separator),第乙個引數是需要格式化的數值,後三個引數都為可選,依次是小數字數、用作小數點的字串、用作千分位的字串。

第一次使用這個函式來處理金額數值的時候,我是使用的number_format(number, 2),目的是要將數值格式化為帶兩位小數的,測試結果也是滿足我的需要。但是,當number的數值變為5000的時候,就報錯了。原因在於number_format(5000, 2)的返回結果是『5,000.00』,顯然是字串,將數值傳遞至前端,js,介面獲取資料對其進行數**算的時候就會報錯。echo number_format(50007878787,2);//結果:50,007,878,787.00

雖在php中運算不會報錯,但是結果也不是我們所需要的;例如:echo number_format(8000, 2) + 2;

//10

echo number_format(8000, 2) * 2;

//16

也就是說'8,000.00'會被當成5來計算,因此我們在使用number_format()的時候需要規避這樣的錯誤,需要對千分位的符號進行規定,也就是傳入第4個引數echo number_format(88000, 2, '.', '');

將千分位字元設定為'',這樣輸出的結果就是我們想得到的5000.00了,雖然其結果實際上還是字串,但是在進行數**算的時候既不會報錯也不會出現錯誤的計算結果。

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

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

PHP數字金額轉換成中文大寫金額

封裝函式如下 數字金額轉換成中文大寫金額的函式 string int num 要轉換的小寫數字或小寫字串 return 大寫字母 小數字為兩位 function numtormb num i 0 c while 1 else 每次將最後一位數字轉化為中文 p1 substr c1,3 n,3 p2 ...

php中獲取當前時間

time 在php中是得到乙個數字,這個數字表示從1970 01 01到現在共走了多少秒,很奇怪吧 不過這樣方便計算,要找出前一天的時間就是 time 60 60 24 要找出前一年的時間就是 time 60 60 24 365 那麼如何把這個數字換成日期格式呢,就要用到date函式了 t time...