2013-07-06 28 views
5

IEEE-754 normu, onluk aritmetiği tanımlar ve onluk kayan nokta sayılarını kullanırken yuvarlama hatalarını önler (bkz. Örneğin, decimal64 on wikipedia). Bu ondalık aritmetiği C veya C++'da kullanmanın bir yolu var mı?C veya C++ 'da ondalık aritmetik?

+4

Kitaplık kullanın. libgmp, mpfr, Boost Çoklu Çözünürlük – sehe

+3

C standardında, ondalık kayan nokta sayısı açıkça bulunmaz, ancak [GCC bunu sağlar] (http://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html). Çok sayıda yarışan ikili temsil vardır; GCC'nin desteklenen her platformdaki temsili düzelttiğine inanıyorum. –

+2

IEEE-754'te tanımlanan ondalık biçimler yuvarlama hatalarını engellemez. (Örneğin, 10/3'ü deneyin) –

cevap

4

TR 24733, IEEE-754 tabanlı C++ için ondalık kayan nokta matrisini belirtir. TR, bunun bir teknik rapor olduğu anlamına gelir, bu yüzden C++ standardının bir parçası değildir. GCC, kısmi bir implementation olduğunu söylüyor. Şu anda C++ standardına eklemek için çalışmalarda bir teklif var, ama bu en iyi birkaç yıl uzaklıkta.

+0

+1, değerli katkılarınız için teşekkürler Pete. QA sitesi üzerinde kurulu üyeleri/tasarımcıları olması gerçekten çok güçlü. – sehe

+0

@sehe - rica ederim. –