bcmath

    3熱度

    1回答

    我有一段簡單的代碼如下。 $amount = 447274.44882; $rate = 0.00001; echo floatNumber(bcmul($amount, $rate, 8), 8); 當它應該是4.47274449時,它輸出0.00000000。如果我改變率0.0001然後將其輸出正確的號碼,任何超過4個小數高,它報告0 我做得不對或這是一個已知的限制還是什麼?如果是這

    3熱度

    1回答

    我有約10-15個數字,我的數據庫中有1,2或3位小數的精度,包括有符號和無符號。所使用的數據類型的 例子: decimal(10,3), decimal(10,2), decimal(10,1) 我計算它們在PHP是這樣的: $result = ($value1from_col1 + ($value2from_col2 * 30)/500) * 0.453; 然後我用一些像這樣的roun

    0熱度

    1回答

    我目前在項目中使用BC數學擴展。 在我的單元測試有一些比較,這將是類似於下面: 這將傳遞: $this->assertEquals('1.23456789123456789123434', '1.2345678912345678912343434654654654654' ); 這不會通過: $this->assertEquals('1.23456789

    4熱度

    2回答

    我需要啓用BC數學,但我不想使用--enable-bcmath來完成,主要是因爲我不瞭解那條路線。 有沒有辦法只使用php.ini做到這一點?

    1熱度

    1回答

    我正在從數據庫查詢中獲取幾個值。我得到的值是這樣的: 10.810000000000000497我想用'10.81'。 或 2.6899999999999999467,我想只使用2.69使用 ini_set('precision', 20)時 ; 如何應該如何使用這個值與bcadd()例如?因爲我只想添加10.81 + 2.69?

    1熱度

    1回答

    我的網絡主機報告PHP_INT_MAX是2147483647,即它是32位環境。我試圖轉換當前在64位環境中運行的幾個數學運算,以便它們也可以在32位環境中運行。 $id = '76561197996545192'; $temp = ''; for ($i = 0; $i < 8; $i++) { $temp .= chr($id & 0xFF); $id >>= 8;

    0熱度

    1回答

    我有一個項目,存儲在bigint列在數據庫中的錢(存儲在美分)。我打算重寫這個東西來代替使用BCMATH。我不介意整數,但他們給我一些存儲在美分中的可怕四捨五入錯誤事件,我懷疑我可能在BCMATH中有相同的舍入錯誤。問題出現在的情況下,想在這個僞代碼: $price = $some_price_in_cents * $store_price_increase; // second value is

    1熱度

    1回答

    我試圖使用PHP中的BCMATH計算稅或折扣價值。我需要2個十進制位置。下面是如何我做它: bcscale(2); $price = '60.67'; $discount = bcmul(bcdiv($price, 100), '3.8'); // calculate 3.8 percent from 60.67 // result is: 2.28 // result should be

    -2熱度

    1回答

    在我的函數中我想用php bc-math來提高精度。我試圖取代所有的操作無濟於事。這是浮動到字符串的轉換問題嗎? function complex_iterate($re,$im) { $re=strval($re); $im=strval($im); $zisqr = $zrsqr = $iter = $zIm = $zRe = "0"; bcs

    1熱度

    2回答

    運行以下內容,我期望收到N, Y, Y。 我明白爲什麼我不能,因爲'0.00' != '0'對第二個例子,但有測試0一個一致的方式而無需進行轉換回浮點/雙,並且不丟棄的===到==。 echo bcmul('5.1', '2.234', 2); echo bcmul('5.1', '2.234', 2) === '0' ? ' Y ' : ' N '; echo "<br/>"; echo