caicaptain2 发表于 2020-7-21 16:46:46

1.3乘以10,等于12了。。。。怎么回事?

本帖最后由 caicaptain2 于 2020-7-21 16:47 编辑

QString tempstring="1.3";
qDebug()<<tempstring.toFloat();//输出1.3
qint16mpint16=10*tempstring.toFloat();   
qDebug()<<tempint16;//输出12 ??!!!



eric2013 发表于 2020-7-21 17:37:34

直接1.3 * 10测输出结果是否正常,如果正常,那就是toFloat的问题。

glory 发表于 2020-7-21 20:45:40

是不精确的。之前我比较版本号的算法里就掉坑里过V1.12和V1.13转换为浮点,再乘以100都是112,导致不能升级。
后来就用乘以1000得到1120和1130就能正确比较了。

caicaptain2 发表于 2020-7-22 08:43:20

本帖最后由 caicaptain2 于 2020-7-22 08:55 编辑

glory 发表于 2020-7-21 20:45
是不精确的。之前我比较版本号的算法里就掉坑里过V1.12和V1.13转换为浮点,再乘以100都是112,导致不能升级 ...
我后来在浮点数的结果上加了qRound()后,可以解决。tempint16=qRoung(10*tempstring.toFloat());
页: [1]
查看完整版本: 1.3乘以10,等于12了。。。。怎么回事?