字符串转换为浮点数出现精度丢失,该怎么解决
字符串转换为浮点数出现精度丢失
不管从字符串转换到 double 还是 float 都得不到想要的结果0.9
------解决方案--------------------
不管是double还是float都不能精确地表示0.9
------解决方案--------------------
无所谓啦,因为double或者float计算的时候,这点精度丢失还是可以承受的,而它们做比较的时候,一般不用=,而是使用<
char *a = "0.9";
double b=0;
sscanf_s(a,"%lf",&b);//结果b=0.90000000000000002
b=atof(a.c_str());//结果b=0.90000000000000002
char *a = "0.9";
float b=0;
sscanf_s(a,"%f",&b);//结果b=0.89999998
不管从字符串转换到 double 还是 float 都得不到想要的结果0.9
------解决方案--------------------
不管是double还是float都不能精确地表示0.9
------解决方案--------------------
无所谓啦,因为double或者float计算的时候,这点精度丢失还是可以承受的,而它们做比较的时候,一般不用=,而是使用<