我需要在PHP 5.2.17中模擬ROUND_HALF_DOWN模式 - 我無法升級服務器的PHP版本。任何想法如何實現這一目標?round()模式ROUND_HALF_DOWN與PHP 5.2.17
基本思想是1.895變成1.89,而不是像圓通常那樣的1.90。
編輯: 這個功能似乎這樣的伎倆:
function nav_round($v, $prec = 2) {
// Seems to fix a bug with the ceil function
$v = explode('.',$v);
$v = implode('.',$v);
// The actual calculation
$v = $v * pow(10,$prec) - 0.5;
$a = ceil($v) * pow(10,-$prec);
return number_format($a, 2, '.', '');
}
謝謝,它似乎工作,但我需要做一些真實的測試,因爲在某些情況下,它會產生與Joseph的功能不同的結果。 – ragulka
什麼示例:)? – MGwynne
好吧,看起來這個功能差不多就是我所需要的,但是,由於一些奇怪的原因,有時它會將1.825調整到1.83。這似乎是PHP的一個錯誤 - 當提供的數字是計算結果(例如1.326 - 0.001)時,它會將其提高到1.83。當數字是以字符串的形式提供的(之前沒有進行過任何計算,它可以正常工作,我通過在函數的開始處添加這些行來修復它: '$ v = explode('。',$ v); $ v = implode('。',$ v);' – ragulka