以下のsprinfの動作は非常に奇妙です。PHP sprintf( '%d'、floatval('16 .40 ')* 100)は1639を出力しますか?
// The code below outputs 1639
$value = floatval('16.40') * 100;
echo sprintf('%d', $value);
しかし、私はそれが私が$value
をダンプ1640.000000
を出力%f
を使用する場合、それは間違いなくfloat(1640)
です。
誰でも私が%d
を使用したときに何が起こったのか知っていますか?これはPHPのバグですか?私はPHP7でテストしました。
[PHP - 浮動小数点数の精度]の可能な複製(https://stackoverflow.com/questions/3726721/php-floating-number-precision) –