这个单纯的C 和标准库是无法做到的,IEEE定义的浮点数中最长的也只有16个字节,目前是无法放下
100000000000.000000000001
的所有的有效数字的。
可以使用一些其它的科学运算的库来做到。但是呢,最后这个尾数真的这么重要?
#include
int main()
{
long double a,b,c;
a = 100000000000.00;
b = 0.000000000001;
c = a + b;
printf("%.13Lf\n",c);
printf("sizeof(long double)=%d\n",sizeof(long double));
return 0;
//输出:
//100000000000.0000000000000
//sizeof(long double)=16
}
用long float定义上述浮点型变量试试;
在8字节int平台下直接做就是了;在4字节int平台下无法直接做了,只能用字符串自己一位一位做……