浮動小数点数型では仮数部のビット長は固定である。そのため、無理数(たとえば円周率π)を正確に表現することはできない。ような多くの10進有理数も正確には表現できない。このような数は2進数表現では無限長となるからだ。代わりに、必要な値を正確に表現できる表現形式を使うこと。正確な計算が不要であれば浮動小数点数表現を使ってもよい。そのような場合には、累積する計算誤差の最大値を慎重かつ体系的に見積り、許容範囲内に収まることを確認しなくてはならない。問題を正しく理解するためには、数値解析を行うことを検討するとよいだろう。違反コード以下の違反コード例では基本的な通貨の計算を行っている。浮動小数点数では正確に表現できないため、多くのプラットフォームでは以下のような結果が出力される(仮数部を2進表現するどのような浮動小数点数においても同様の結果となる)。$0.29999999999999993適合コード以下の適合コードでは整数型(たとえばlongなど)を使い、データをドルではなくセント単位で表現している。);このコードでは以下のような正しい出力が得られる。使った計算はプリミティブ型を使った計算よりも効率が悪い。効率の悪化がもたらす意味はアプリケーションによって異なる。);このコードは以下を出力する。正確な計算が必要な場合に浮動小数点数表現を用いると、精度が失われたり、計算結果が間違った値になる可能性がある。自動検出は容易である。精度が不十分な計算を行うコードを検出するのは一般に不可能である。正確に表現することのできない浮動小数点リテラルを警告する、といったヒューリスティックな検査は役に立つかもしれない。Values"翻訳元これは以下のページを翻訳したものです。有このページは役に立ちましたか?javascriptを有効にすると、ご回答いただけます。その他のご意見はPCサイトにて入力願います。