16,471
社区成员
发帖
与我相关
我的任务
分享
double num = 99999999.99;//整数部分8个9
printf("%.8f, num);
//VC6下
double fVal = 99999999.99;
LONGLONG iInt = (LONGLONG)fVal;
LONGLONG iDcm = (LONGLONG)((fVal - iInt)*1.0E12 + 0.5);
TRACE( _T("%.12f, %I64d.%I64d\n"), fVal, iInt, iDcm);
//调试输出
//99999999.989999995000, 99999999.989999994636
说明这个数不能被精确描述 就不要纠结于这个误差问题了#include <stdio.h>
int main() {
double num = 99999999.99;
printf("%17.8lf", num);//99999999.99000000
return 0;
}