这是我的应用程序的一部分,它是Qt中的计算器:
QString ss;
QTextStream (&ss) << expression(); // expression() return a double value
result_box -> setText(ss); // result_box is a lineEdit
当我输入10^6
并且函数expression()
返回该值时,在result_box
中将显示其科学记数, 1e + 06 !
如何让应用以十进制显示结果, 1000000 而非科学记数法?
更新后的部分:
我想我应该为此编写一个代码:
if( d is like an int number)
result_box -> setText(QString::number(d , 'f', 0));
else if ( d is a double number with n numbers after point)
result_box -> setText(QString::number(d , 'f', n));
答案 0 :(得分:0)
您希望使用'f'
代替'g'
,因为'g'
采用最简洁的格式。
http://doc.qt.io/qt-5/qstring.html#argument-formats
QString ss;
QTextStream (&ss) << 1000000.0;
ui->lineEdit->setText( QString::number( ss.toDouble() , 'f') );
.toDouble( &ok ); // if you want to check if the conversion actually worked.
默认情况下,精度是6,如果你想要别的东西,你可以设置它,否则不需要。
简而言之:
result_box->setText( QString::number( expression( ) , 'f' ) );
会帮你解决问题。