【问题标题】:Convert QString/QByteArray to Scientific Notation qt将 QString/QByteArray 转换为科学计数法 qt
【发布时间】:2014-10-01 17:11:33
【问题描述】:

有没有办法轻松地将显示一些大整数的QByteArrayQStringint 转换为科学记数法?我需要将其显示为QLineEdit 中的字符串。

我确定这已经被问过了,但我还没有找到我要找的东西。

QByteArray:475000000 转换为QString:4.75E8

【问题讨论】:

    标签: c++ qt type-conversion


    【解决方案1】:
    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
    

    【讨论】:

    • @切尔诺贝利——太棒了!再次再次感谢
    【解决方案2】:

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

    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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 2012-07-02
      • 2017-08-31
      • 2014-09-06
      • 2012-06-22
      • 1970-01-01
      • 2019-07-09
      相关资源
      最近更新 更多