2013-07-06 10 views
5

IEEE-754ノルムは、基数10の浮動小数点数を使用するときの丸め誤差を避けるために小数の算術演算を定義します(たとえばdecimal64 on wikipediaを参照)。 CやC++でこの小数の演算を使用する方法はありますか?CまたはC++の小数の算術演算?

+4

ライブラリを使用してください。 libgmp、mpfr、Boost Multiprecision – sehe

+3

C標準には明示的な10進浮動小数点型がありませんが、[GCCはこれを提供します](http://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html)。競合する複数のバイナリ表現があります。私はGCCがそれぞれのサポートされているプラ​​ットフォームで表現を修正すると信じています。 –

+2

IEEE-754で定義された10進形式は、丸め誤差を回避しません。 (試してみましょう、たとえば10/3) –

答えて

4

TR 24733は、IEEE-754に基づいてC++の10進浮動小数点数を指定します。 TRは技術的なレポートなので、C++標準の一部ではありません。 GCCには、部分的にimplementationがあると言われています。現在、C++標準に追加することが提案されていますが、これは数年前のことです。

+0

+1、あなたの貴重な貢献に感謝します。委員会のメンバーやデザイナーにQAサイトを組み込むことは本当に強力です。 – sehe

+0

@sehe - あなたは大歓迎です。 –