0

重複の可能性:
Objective-c / cocoa touchでモジュロ演算を行う方法は?

ここで「myModValue」の値が1.73472e-18である理由を誰かが説明できますが、xが0.1または0.4の場合、正しく0になりますか?2つのdoubleのモジュロ値を取得するためのより良い方法はありますか?

double x = 0.3;
double y = 0.1;
double myModValue = fmod(x, y);

ありがとうマイケル

編集:上記のコードをハードコーディングしてみました(プロジェクト変数の値ではありません)。結果は0.1です。理由はわかりません...

4

1 に答える 1

1

丸め誤差のため、浮動小数点数は正確ではありません。値1.73472e-18は、浮動小数点数では基本的に0です。これが、floatを==と比較するべきではない理由です。

この回答も参照してください。

于 2012-09-08T10:27:36.803 に答える