Phpでfloat値(eg:1.0000124668092E + 14)をIntegerに変換したいのですが、php.outputでこれに最適な方法は「100001246680920」です
変換するとはどういう意味ですか?
(int) $float
_またはintval($float)
floor($float)
(down)またはceil($float)
(up)round($float)
-追加の modes 、_PHP_ROUND_HALF_...
_定数を参照*:キャストには、float値をint(大きすぎる、または小さすぎる)、f.ex。あなたの場合。
_
PHP_INT_MAX
_ :PHPのこのビルドでサポートされている最大の整数。通常int(2147483647)。
ただし、 BCMath または [〜#〜] gmp [〜#〜] 拡張を使用して、これらの大きな数を処理できます。 (両方とも制限があり、これらの拡張機能を有効にするだけで済みます)
round()
を使用します
$float_val = 4.5;
echo round($float_val);
詳細 の場合、精度と丸めモードのparamを設定することもできます
更新(更新された質問による):
$float_val = 1.0000124668092E+14;
printf('%.0f', $float_val / 1E+14); //Output Rounds Of To 1000012466809201
常にintval()があります-これがあなたが探していたものであるかどうかはわかりません...
例:-
$floatValue = 4.5;
echo intval($floatValue); // Returns 4
値を整数に四捨五入しませんが、小数と末尾の数字を取り除き、小数の前の整数を返します。
これに関するいくつかのドキュメントを以下に示します。- http://php.net/manual/en/function.intval.php
制限されているintval()
とともに、round
、floor
、またはceil
メソッドを使用して最も近い整数に丸めます。
http://php.net/manual/en/function.round.php