繁体   English   中英

将QString / QByteArray转换为科学记数法qt

[英]Convert QString/QByteArray to Scientific Notation qt

有没有一种方法可以轻松地将QByteArrayQString或显示某些大整数的int转换为科学计数法? 我需要在QLineEdit中将其显示为字符串。

我敢肯定这已经被问到了,但是我还没有找到我想要的东西。

转换QByteArray475000000QString4.75E8

QString aaa("475000000");
ui->lineEdit->setText(QString::number(aaa.toDouble()));

输出:

4.75e+08

要么

QString aaa("475000000");
QString formatted = QString::number(aaa.toDouble()).remove("+");
ui->lineEdit->setText(formatted.toUpper());

输出:

4.75E08

QString aaa("475000000");
QString formatted = QString::number(aaa.toDouble()).remove("+");
formatted.replace("e0","E");
ui->lineEdit->setText(formatted.toUpper());

输出:

4.75E8

最简单的选择是将字符串转换为数字,然后再将数字转换为字符串。
有很多可能性:

QString aaa("475000000");
double value = aaa.toDouble();
QString cStyleResult = QString::number(value, 'e');
QString localeAwareResult = QLocale::system().toString(value, 'e');
QString noLocaleFormat = QString("value=%1").arg(value, 0, 'e');
QString localeAwareFormat = QString("value=%L1").arg(value, 0, 'e');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM