匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

perlの計算について、なぜ下記は4021ではなく4020が出力されるのでしょうか?

実際のスクリプトは長く$timesが色々な値をとるため、不用意に$max_getに整数以外を出力させないようにintを使っているのですが、この書き方は正しくないのでしょうか?
$times = 0.005;
$min_get = 4000;
$max_get = int( $min_get * (1 + $times) + 1 );
print $max_get;

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2017/06/20 01:32:23
  • 終了:2017/06/20 02:57:15

ベストアンサー

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2017/06/20 02:39:16

4000×0.005=20

と考えたいんでしょうけれども
コンピューターは浮動小数点だから
小数点以下の数値は近似値しか扱えませんよ
実際には

4000×0.004999…=19.99999…

になってると思われます

匿名回答1号

https://dobon.net/vb/dotnet/beginner/floatingpointerror.html
> 例えば十進数の「0.1」を2進数に変換すると

に続く部分を参照のこと

2017/06/20 02:46:48
匿名質問者

ありがとうございます。とても参考になりました!

2017/06/20 02:57:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません