1

MySQLテーブルにDOUBLEデータ型列があり、値は次のとおりです。

14.5299

しかし、PHPnumber_formatはその値を次のように丸めます。

14.5300 

そして、私がちょうどecho 14.5299、それは出力します:

14.53

14.5299HTMLマークアップに何もハードコーディングせずに出力するにはどうすればよいですか?

4

4 に答える 4

8

使用するsprintf()

echo sprintf("%2.4f", 14.5399);

ドキュメント: http: //us2.php.net/sprintf

于 2012-11-29T17:54:01.700 に答える
3

これは私のために働いた:

<?php
$double = 14.5299;
echo number_format(floor($double*100)/100, 2);
?>

結果は:14.52

于 2012-11-29T17:55:03.547 に答える
2
$double = 14.5299;
var_dump( number_format($double, 4, '.', ',') );

...プリント:

string(7) "14.5299"

... 予想通り。

私の知識に基づく推測では、あなたの数には実際にはもっと多くの9があります。

$double = 14.52999;

...この場合、14.5300丸める正しい方法です。

于 2012-11-29T17:55:48.783 に答える
0

次の関数が機能するはずです。

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);
于 2017-11-03T08:55:41.200 に答える