C++关于double的运算精度问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:32:38
输入一个整形数据3和1415926
double Decimal=(double)1415926*pow(10,-7);//得到结果是0.141593
(double)3+Decimal;//得到3.14159

如何才能让Double的运算不丢失精度,即第一个式子算出来0.1415926,第二个式子算出3.1415926?
请问如果要用自定义类型的话?应该怎么定义?需要一个10位精度的数。

计算精度是够的,只是你输出的时候默认进行了舍入
试试这样
printf("%.7lf\n",Decimal);
printf("%.7lf\n",(double)3+Decimal);

double的精度就这样了

如果想要高精度,就用自定义类型,想多少都行