6

最初の例で間違った結果が出力されるのはなぜですか?

perl -le 'print $x = 100*1.15 % 5'
4
perl -le 'print $x = 1000*1.15 % 5'
0
4

2 に答える 2

9

これは浮動小数点演算によるものです。

print $x = int(100*1.15);

あなたに114を与えます。

于 2010-07-26T14:26:08.037 に答える
5

丸め。コンピュータは実際の小数点以下の桁数を完全に表すことはできないことに注意してください-それらは概算です。私のコンピューターでperl -le 'print $x = (100*1.15)-115'は、結果が得られます。これは、ほぼ115ですが、完全ではない-1.4210854715202e-14ことを意味します。100*1.15

于 2010-07-26T14:27:08.147 に答える