フロート値 (例: 1.0000124668092E+14) を PHP で整数に変換したいのですが、php.output でこれを行うための最良の方法は "100001246680920" である必要があります。
質問する
137956 次
6 に答える
63
変換するとはどういう意味ですか?
- キャスト*:
(int) $float
またはintval($float)
- 切り捨て:
floor($float)
(下) またはceil($float)
(上) - 丸め:
round($float)
- 追加のモードPHP_ROUND_HALF_...
があります。定数を参照してください
* : float 値を int で表現できない (大きすぎる、または小さすぎる) 可能性があります。あなたの場合。
PHP_INT_MAX
: このビルドの PHP でサポートされている最大の整数。通常は int(2147483647) です。
ただし、これらの大きな数を処理するためにBCMathまたはGMP拡張機能を使用できます。(両方ともバインドされています。これらの拡張機能を有効にするだけで済みます)
于 2013-05-09T08:08:27.793 に答える
26
私はあなたに警告したいだけです:
>>> (int) (290.15 * 100);
=> 29014
>>> (int) round((290.15 * 100), 0);
=> 29015
于 2019-11-05T13:49:45.850 に答える
16
使用するround()
$float_val = 4.5;
echo round($float_val);
詳細については、精度と丸めモードのパラメーターを設定することもできます
更新(更新された質問によると):
$float_val = 1.0000124668092E+14;
printf('%.0f', $float_val / 1E+14); //Output Rounds Of To 1000012466809201
于 2013-05-09T07:28:30.560 に答える
1
またはメソッドを使用round
して、最も近い整数に丸めます。floor
ceil
intval()
http://php.net/manual/en/function.round.php
于 2013-05-09T07:29:38.140 に答える