QT中一个float除法精度丢失的问题

新手上路,请多包涵

以下程序运行环境QT MinGW 5.3.0 32 bit

代码一:

QString s="2.08";
float b=s.toFloat();
qDebug()<<b;               //2.08
float c=0.01;
float val=b/c;
int value=(int)val;   
qDebug()<<value;        //207    error

代码二:

QString s="2.08";
float b=s.toFloat();
qDebug()<<b;            //2.08
float c=0.01;
float val=b/c;
qDebug()<<val;        //208  加上这句输出后结果都对了
int value=(int)val;  
qDebug()<<value;      //208   ok

代码三:

float b=2.08;             //现在直接给浮点数结果也对
qDebug()<<b;            //2.08
float c=0.01;
float val=b/c;
int value=(int)val;  
qDebug()<<value;      //208   ok

想找个明白人帮助解惑,万分感谢。

阅读 4.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进