用Double表示183.00,Debug下是183.00000001这是二进制表示十进制的问题,一般两个Double值相差小于认可的误差,就认为两个值是相同的。 如果必须要表示成183.00,可以用两个int来保存,一个保存整数,一个保存小数。
[quote=引用 3 楼 zgl7903 的回复:] char *psf = "183.0000000000000001"; char chBuff[128]; sprintf(chBuff, "%.2lf", atof(psf)); double fi = atof(chBuff);
char *psf = "183.0000000000000001"; char chBuff[128]; sprintf(chBuff, "%.2lf", atof(psf)); double fi = atof(chBuff);
char *psf = "183.00"; double fi = atof(psf);
double 型的精度位数能有那么多?
d1=183.0000000000000001; d2=183.0000000000000001; printf("d1 = %.2lf, d2 = %.2lf\n", d1, d2); %.2lf 这个需求很难?
65,202
社区成员
250,523
社区内容
加载中
试试用AI创作助手写篇文章吧