2013-11-26 71 views
2

我有一個值來自需要轉換爲百分比的數組。我的問題是,當我除以100我似乎失去了小數點後的數字。例如,我需要56.5變成.565,這使得它.56。除以100時的PHP舍入問題

我試過使用round()number_format()等無濟於事。

$yearnow = date("Y"); 
$ratedate = $mileagerates->Rates->Year; 
$rateamount = $mileagerates->Rates->Mileage_Rate; 

if ($yearnow == $ratedate) { 
    $currentyear = $ratedate; 
    $currentamount = $rateamount/100; 
} else { 
    $currentyear = ""; 
    $currentamount = 0; 
} 
echo $currentyear; 
echo $currentamount; 
+3

我沒有看到圓形或number_format在你的代碼 – Ibu

+1

那是因爲他們沒有工作。導致此問題的線路爲: '$ currentamount = $ rateamount/100;' – Bill

+4

向我們顯示$ currentyear,$ rateamount和$ currentamount的值var_dumps;但除非你發現了世界上沒有人遇到過的奇怪晦澀難懂的錯誤,否則很難看出你的意思。 –

回答

-1

可能是precision的php.ini設置。

檢查做的當前設置:

print_r(ini_get('precision')); 

並設置有

ini_set('precision', 14); 

到一個較高的值,默認情況下實際上應該由php docs 14。

+0

它目前設置爲14: 'print_r(ini_get('precision'));'= 14 – Bill

+0

;浮點數中顯示的有效位數。 ; http://www.php.net/manual/en/ini.core.php#ini.precision precision = 14 – Bill

+0

然後,我現在也沒有想法,那是我能夠重現問題的唯一方法: -/ http://codepad.org/K32VAy2u – enricog