我是QT的新手。我在浮点值方面遇到了一些奇怪的问题。以下代码显示带小数点的消息框。即,10.53
QMessageBox Msgbox;
float num = 10.53;
QString str = QString::number(num, 'g', 4);
Msgbox.setText(str);
Msgbox.exec();
以下代码显示没有小数点的消息框。即,1
QMessageBox Msgbox;
float num = 120/77;
QString str = QString::number(num, 'g', 4);
Msgbox.setText(str);
Msgbox.exec();
为什么在第二个代码段中忽略小数点后的数字?我将数据类型更改为double和qreal。没有任何效果。
答案 0 :(得分:5)
因为120/77正在划分2个整数(产生一个整数)然后转换为float
你需要在分割
之前将数字转换为浮点数float a = 120, b = 77;
float num = a/b;
答案 1 :(得分:1)
在数字解决问题之前添加(浮点数)。即,float num = (float)120/77;
答案 2 :(得分:1)
float num = 120.0/77.0;
也适用,是C.的标准。