QT:浮动到QString

时间:2013-12-10 12:31:55

标签: qt

我是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。没有任何效果。

3 个答案:

答案 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.的标准。