double 和 long double 小数位数的区别
Difference in the amount of decimal numbers between double and long double
double 数据类型和 long double 数据类型的小数位数有什么区别?
double
- 小数点后 15 位
long double
- 19 位小数(在使用 80 位格式的系统上)
80 位是最常见的格式,但并非在所有系统上都可用。
https://en.cppreference.com/w/c/language/arithmetic_types#Real_floating_types
https://www.tutorialspoint.com/cprogramming/c_data_types.htm
C 不要求 double
和 long double
之间的有效小数位数有所不同。他们可能是一样的。
要报告浮点类型可以至少 忠实编码的有效小数位数,请参阅xxx_DIG
。
#include <float.h>
printf("long double %d\n", LDBL_DIG); // min: 10, Typically 15, 18 or 33
printf("double %d\n", DBL_DIG); // min: 10, Often 15
printf("float %d\n", FLT_DIG); // min: 6, Often 6
double 数据类型和 long double 数据类型的小数位数有什么区别?
double
- 小数点后 15 位
long double
- 19 位小数(在使用 80 位格式的系统上)
80 位是最常见的格式,但并非在所有系统上都可用。
https://en.cppreference.com/w/c/language/arithmetic_types#Real_floating_types
https://www.tutorialspoint.com/cprogramming/c_data_types.htm
C 不要求 double
和 long double
之间的有效小数位数有所不同。他们可能是一样的。
要报告浮点类型可以至少 忠实编码的有效小数位数,请参阅xxx_DIG
。
#include <float.h>
printf("long double %d\n", LDBL_DIG); // min: 10, Typically 15, 18 or 33
printf("double %d\n", DBL_DIG); // min: 10, Often 15
printf("float %d\n", FLT_DIG); // min: 6, Often 6