【3Dゲームエンジン】Unity質問スレッド14 [転載禁止]©5ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
0971名前は開発中のものです。
2015/01/18(日) 04:42:10.98ID:Fk29jtKD・最初からdoubleを使った方がいいだろうな〜
但しそれはfloatの範囲を超えた訳じゃなくて足している数が
floatの精度的に有効な数でなくなっただけ。
そのくらいの大きさの値になると1とかは認識できなくなる。
浮動小数点には常に誤差がありfloatなら有効桁は7桁、doubleなら15桁
数千億加算しようとしても数が大きくなればそれすら誤差の範囲内になる。
・stringにして保存、読み込んだらdoubleに戻す
・前述した理由からいずれにせよ大きな値に小さな値を足していくには限界がある。
どうしてもやりたいなら数と表記を分離してしまう。
例えば3つfloatを用意して一つ目のfloatで100000まで数えたら二つ目のfloatを
1にして一つ目のはリセットする。それがあふれたらさらに上を使う。
上の桁を数えるのはintでもいい。
こうすればメモリがあるだけ数えることができる。
表示するときは上の桁カウンターが0のときはそのままで
そうでないときは使う桁数のゼロプレースストリングにして足してやればいい。
あとこの部分の話、Unityとは全く関係ないなw
レス数が950を超えています。1000を超えると書き込みができなくなります。