簡體   English   中英

使用number_format()php函數形成的數字的加法

[英]Addition to number formed using number_format() php function

當我嘗試向使用php number_format()函數形成的3位數字添加整數時,給出正確的結果,但是當數字變為4位數字時,給出錯誤的輸出。

我已經試過了。 請解釋一下這背后的原因?

$num1=number_format(1000.5,2);
$num1+=1;
echo $num1;

輸出2

  $num1=number_format(100.5,2);
  $num1+=1;
  echo $num1."\n";`

輸出:101.5

在此處輸入圖片說明

在此處輸入圖片說明

number_format()返回的字符串不是數字。 在那里可以將數字類型(整數,浮點數)格式化為具有特定的所需“布局”的字符串。 因此,您要做的是將number 1加到number_format產生的字符串中,這將嘗試將字符串轉換回數字,顯然也為字符串轉換產生1 ,總共為2。

TL;博士; 僅對數字進行計算,然后在最后進行number_format以定義的格式輸出。

$num1 = number_format(1000.5, 2);
var_dump($num1);
// => string(8) "1,000.50"

$num1 += 1;
var_dump($num1);
// => int(2)

函數number_format()返回字符串。

當您添加1時,該字符串將類型強制轉換為整數

雜耍類型

最快的解決方案是在格式化數字上使用str_replace() 這樣的事情會做:

(float)str_replace( ',', '', $formatted_number )

通過從字符串中刪除逗號並要求float值,您將獲得一個可用的數字。

暫無
暫無

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

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