浮点格式
XL C/C++ 支持以下 二进制 浮点格式:
- 32 位单精度,近似绝对规范化范围为 0 和 10-38 到 1038 ,精度约为 7 位小数
- 64 位双精度,近似绝对规范化范围为 0 和 10-308 到 10308 ,精度约为 16 位十进制数字
- 128 位扩展精度,范围略大于双精度值,且精度约为 32 位小数
请注意, long double 类型可能表示双精度或扩展精度值,具体取决于 -qldbl128 编译器选项的设置。
从 V9.0开始,在所选硬件和操作系统级别上,编译器还支持以下十进制浮点格式:
- 32 位单精度,近似范围为 10-101 到 1090 ,精度为 7 十进制数字
- 64 位双精度,近似范围为 10-398 到 10369 ,精度为 16 位小数
- 128 位扩展精度,近似范围为 10-6176 到 106111,精度为 34 位十进制数字

XL C/C++ 的 128 位扩展精度格式与 IEEE 标准建议的 binary128 格式不同。 IEEE 标准建议扩展格式使用指数中的更多位来实现更大的范围,使用分数来实现更高的精度。
特殊数字,例如 NaN, 无穷大或负零,可能无法用128位扩展精度值表示。 算术运算不一定以扩展精度传播这些数字。