androidでの計算が正しくない?

ホーム フォーラム Android,iOS androidでの計算が正しくない?

  • このトピックには0件の返信、1人の参加者があり、最後にokada244により6年、 7ヶ月前に更新されました。
2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #14417
    okada244
    参加者

    文字列オブジェクトを作成し、その文字列オブジェクトに対し
    可変文字列を変更でStr$(108 / 1.08)という計算式を設定し
    計算結果を表示させると計算結果が100.0000000146597になってしまいます。
    Windows10のcf2.5上では正しく100になります。
    これはバグなのでしょうか?
    もし、正しく計算させる方法があれば教えていただけると助かります。
    よろしくお願いいたします。

    #14439
    ASD
    キーマスター

    WindowsとAndroidに使われるJavaとでは浮動小数点の計算の規格が異なるために誤差が発生します。

    html5での少数点以下の数字の仕様


    これを修正するためには、上記トピックで説明されているような、『小数点を取り除いて整数にして計算し、あとで小数点を戻す』というような処理をすることになるのですが、とてつもなく面倒くさいことになります。できる限り整数で計算し小数点が介在しないような設計にされる方が無難です。数式のIntやRoundを使うことで小数点以下を切り捨てたり四捨五入して整数にすることができます(Roundが四捨五入です)。また、『浮動小数を文字列に変換』を使うことで、小数点以下の桁数を削ることもできます。

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。