C# 7.3において、float型の変数をdouble型にキャストした際、非常に小さな値の誤差が発生しています。
例:float : 29 → double : 29.0000009536743
なんとなく、誤差が発生しそうだな、という気はしますが、これの原因を正確に説明できなくて困っています。
より大きい値を扱える型へのキャストでは誤差は発生しないものと思っていたのですが…
よろしくお願いいたします。
追記
全く同じコードは掲載できないのでイメージでしかありませんが、以下のようなコードをUnity 2019.4.15fで実行した際に発生したものです。
C#
int A = 29; int AMax = 45; float ARatio = A / (float)AMax; Debug.Log(AMax * ARatio) // 29 Debug.Log(AMax * (double)ARatio) // 29.0000009536743
まだ回答がついていません
会員登録して回答してみよう