PHP 解決INT型別轉換 精度丟失問題

2021-09-24 22:12:41 字數 662 閱讀 6315

公司專案在新增商品的時候當商品**輸入為19.9的時候,錄入到資料庫就變為19.89了 。這裡需要把元轉換為分,直接乘以100就可以,但是又使用了轉化整數型別的函式:

int 或者 intval 結果都會少1

可以看出原本結果應該是1840的,但是使用了函式intval() 和 (int) 之後結果居然變為了1639了,這是由於浮點型別的數字不能在不丟失一點兒精度的情況下通過內部二進位制轉換得到結果的,換句話說就是浮點型別的計算都會丟失精度的。

該函式的解決方法手冊上也給出了,就是需要先使用strval() 函式將變數轉成字串型別,使用情況及結果如下:

從上圖可以看出,轉換成字串後,就可以避免int的精度問題了。

ps:這裡還特意去測試了下,發現只有xx.4和xx.9會出現這種精度問題

php把int型別轉換成時間型別

這次做專案遇到了時間戳轉換的問題 資料庫設計的時間戳為int格式的,所有需要一定的轉換 1 lasttime time 這個是新增乙個time時間戳 這個時間戳會輸出當前時間並轉換成int型別 1558321414 這個是我寫這個的時候的時間戳 當提取出來的時候可以用 1 time date y m...

int型別轉換byte型別

計算機中,int型別占用4個位元組,byte型別占用1個位元組 當int型別強轉為byte型別時,計算機會擷取最後的八位 1個位元組 由於計算機儲存資料時,都是以補碼的形式進行儲存。然而,我們通常看到的數卻是計算機儲存的補碼先轉換成反碼,後轉換成原碼,再轉換成十進位制呈現的。正數 原碼 反碼 補碼 ...

型別轉換函式int

型別轉換函式int include include include using namespace std class binary for i 0 i 16 len i bits i 0 binary int a 整型引數建構函式 friend binary operator binary bin...