ISO/IEC TR 24733:2011
Information technology — Programming languages, their environments and system software interfaces — Extensions for the programming language C++ to support decimal floating-point arithmetic
发布时间:2011-10-25 实施时间:


C++是一种广泛使用的编程语言,它在计算机科学和工程领域中有着广泛的应用。然而,C++标准库中并没有提供对十进制浮点数的支持,这使得C++程序员在处理货币、金融和其他需要高精度计算的领域时面临一些挑战。为了解决这个问题,ISO/IEC TR 24733:2011标准被提出,它为C++语言提供了对十进制浮点数的支持。

ISO/IEC TR 24733:2011标准定义了一组新的数据类型和函数,这些类型和函数可以用于处理十进制浮点数。其中最重要的类型是decimal,它是一个高精度的十进制浮点数类型。decimal类型可以存储任意精度的十进制数,并支持基本的算术运算和比较操作。此外,标准还定义了一些其他的数据类型,如decimal32、decimal64和decimal128,它们分别表示32位、64位和128位的十进制浮点数。

除了新的数据类型之外,ISO/IEC TR 24733:2011标准还定义了一些新的函数,这些函数可以用于对十进制浮点数进行计算和处理。其中最重要的函数是decimal::operator+、decimal::operator-、decimal::operator*和decimal::operator/,它们分别表示十进制浮点数的加、减、乘和除运算。此外,标准还定义了一些其他的函数,如decimal::sqrt、decimal::pow和decimal::exp,它们分别表示十进制浮点数的平方根、幂和指数函数。

ISO/IEC TR 24733:2011标准的实现需要支持IEEE 754-2008标准中定义的十进制浮点数格式。这个格式使用二进制编码来表示十进制浮点数,可以在高精度计算和存储方面提供更好的性能和可靠性。此外,标准还定义了一些与IEEE 754-2008标准兼容的函数,如decimal::from_string和decimal::to_string,它们可以用于将十进制浮点数转换为字符串和从字符串中解析出十进制浮点数。

总的来说,ISO/IEC TR 24733:2011标准为C++程序员提供了一种方便、高效和可靠的方式来处理十进制浮点数。它为C++语言的功能扩展提供了一个重要的例子,也为其他编程语言提供了一个参考。

相关标准
- ISO/IEC 14882:2017——C++编程语言标准
- IEEE 754-2008——二进制浮点算术标准
- ISO/IEC 9899:2018——C编程语言标准
- ISO/IEC 10646:2017——通用字符集标准
- ISO/IEC 18025:2006——C++测试框架