Convert a double to a QString

后端 未结 5 703
北荒
北荒 2021-02-02 05:39

I am writing a program in QT. I want to convert a double into a Qstring in C++.

相关标签:
5条回答
  • 2021-02-02 05:47

    Building on @Kristian's answer, I had a desire to display a fixed number of decimal places. That can be accomplished with other arguments in the QString::number(...) function. For instance, I wanted 3 decimal places:

    double value = 34.0495834;
    QString strValue = QString::number(value, 'f', 3);
    // strValue == "34.050"
    

    The 'f' specifies decimal format notation (more info here, you can also specify scientific notation) and the 3 specifies the precision (number of decimal places). Probably already linked in other answers, but more info about the QString::number function can be found here in the QString documentation

    0 讨论(0)
  • 2021-02-02 05:55

    Instead of QString::number() i would use QLocale::toString(), so i can get locale aware group seperatores like german "1.234.567,89".

    0 讨论(0)
  • 2021-02-02 05:58

    You can use arg(), as follow:

    double dbl = 0.25874601;
    QString str = QString("%1").arg(dbl);
    

    This overcomes the problem of: "Fixed precision" at the other functions like: setNum() and number(), which will generate random numbers to complete the defined precision

    0 讨论(0)
  • 2021-02-02 06:04

    Check out the documentation

    Quote:

    QString provides many functions for converting numbers into strings and strings into numbers. See the arg() functions, the setNum() functions, the number() static functions, and the toInt(), toDouble(), and similar functions.

    0 讨论(0)
  • 2021-02-02 06:05

    Use QString's number method (docs are here):

    double valueAsDouble = 1.2;
    QString valueAsString = QString::number(valueAsDouble);
    
    0 讨论(0)
提交回复
热议问题