2013-07-06 34 views
5

IEEE-754標準定義了十進制運算,以避免在使用基數爲10的浮點數時舍入誤差(請參閱decimal64 on wikipedia)。有沒有辦法在C或C++中使用這個十進制算術?C或C++中的十進制算術?

+4

使用庫。 libgmp,mpfr,Boost Multiprecision – sehe

+3

C標準沒有明確的十進制浮點類型,但是[GCC提供了這個](http://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html)。有多個競爭的二進制表示;我相信GCC會在每個支持的平臺上修復代表性。 –

+2

IEEE-754中定義的十進制格式不能避免舍入錯誤。 (嘗試,例如10/3) –

回答

4

TR 24733根據IEEE-754爲C++指定了十進制浮點數學運算。 TR意味着它是一份技術報告,因此它不是C++標準的一部分。 GCC表示他們有部分implementation。目前工作中有一項建議將其添加到C++標準中,但最好還是幾年。

+0

+1,謝謝皮特對你的寶貴貢獻。委員會成員/設計師加入質量保證部門是非常有用的。 – sehe

+0

@sehe - 不客氣。 –