關於number format的乙個報錯

2022-03-09 16:48:00 字數 827 閱讀 3165

今天運營新增商品時報了乙個詭異的錯誤,但並沒有發版本,應該時資料輸入的問題

碰到報錯:

a non well formed numeric value encountered

定位**:

/*

* 操作,入庫的**(提交後操作後方可入庫)

* 單位分 *100

*/function price4operate($price)

$price = number_format($price, 2, ".", "") * 100;

$price = $price > 0 ? $price : 0;

return $price;

}

傳入的$price是資料不是int型別的,可能是varchar等等

解決方法:

可以使用float()或者floatval函式將非格式良好的資料轉換成良好的資料型別就ok了!

$price = number_format((float)$price, 2, ".", "") * 100;
其實這種類似因為資料轉換或計算而報錯的場景也會有,

比如在php計算除法時,被除數時0,同樣也會報類似的錯誤

關鍵需要我們程式設計師在寫**的時候要嚴謹可能發生的場景,提前做到判斷。

author:hann

number format 函式詳解

格式化數字字串。語法 string number format float number,int decimals string dec point string thousands sep 傳回值 字串 函式種類 數 算 內容說明 本函式用來將浮點引數 number 格式化。若沒加引數 decim...

有意思的number format

申明 這是個人原創,在cnblogs上也有,都是自己寫的所以放原創了。number format number,decimals,decimalpoint,separator 有四個引數,第乙個和第二個引數是必須的,第三個和第四個是可選項。但實際測試中第三個和第四個這兩個引數必須同時存在,也就是要麼...

NumberFormat類實際應用

package numberformat.cn import j a.text.numberformat numberformat 是所有數值格式的抽象基類 由於 抽象類必須要通過多型來例項化,但是numberformat中有乙個靜態方法,可以直接取得例項化物件 static numberforma...