MySQLテーブルにDOUBLEデータ型列があり、値は次のとおりです。
14.5299
しかし、PHPnumber_format
はその値を次のように丸めます。
14.5300
そして、私がちょうどecho 14.5299
、それは出力します:
14.53
14.5299
HTMLマークアップに何もハードコーディングせずに出力するにはどうすればよいですか?
MySQLテーブルにDOUBLEデータ型列があり、値は次のとおりです。
14.5299
しかし、PHPnumber_format
はその値を次のように丸めます。
14.5300
そして、私がちょうどecho 14.5299
、それは出力します:
14.53
14.5299
HTMLマークアップに何もハードコーディングせずに出力するにはどうすればよいですか?
これは私のために働いた:
<?php
$double = 14.5299;
echo number_format(floor($double*100)/100, 2);
?>
結果は:14.52
$double = 14.5299;
var_dump( number_format($double, 4, '.', ',') );
...プリント:
string(7) "14.5299"
... 予想通り。
私の知識に基づく推測では、あなたの数には実際にはもっと多くの9があります。
$double = 14.52999;
...この場合、14.5300
丸める正しい方法です。
次の関数が機能するはずです。
function fixedNumberFormat($float, $decimals, $withFormat = true) {
$decPoint = ($withFormat) ? "," : null;
$thousandsSep = ($withFormat) ? "," : null;
return substr(number_format($float, $decimals + 1), 0, -1);
}
fixedNumberFormat(14.5299, 4);