首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

字符串转换为浮点数出现精度丢失,该怎么解决

2013-10-21 
字符串转换为浮点数出现精度丢失本帖最后由 u012480655 于 2013-10-19 12:58:44 编辑char *a 0.9doub

字符串转换为浮点数出现精度丢失
本帖最后由 u012480655 于 2013-10-19 12:58:44 编辑


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计算的时候,这点精度丢失还是可以承受的,而它们做比较的时候,一般不用=,而是使用<

热点排行