【问题标题】:How do I format a number?如何格式化数字?
【发布时间】:2015-11-28 16:47:43
【问题描述】:

如何按以下方式格式化数字?

输入:

123

输出:

1.2-3

在 C# 中,整数类型有一个 ToString() 重载来完成这项工作:

123.ToString(@"0\.0-0"); //output 1.2-3

Qt 中有这样的东西吗?我确实阅读了 QString 文档,但无法做到这一点。

【问题讨论】:

    标签: c++ windows qt formatting qstring


    【解决方案1】:

    例如,你可以这样做:

    int number = 123;
    QString s = QString("%1.%2-%3").arg(
        QString::number((number / 100) % 10),
        QString::number((number / 10) % 10),
        QString::number(number % 10));
    

    或:

    QString s = QString::number(123);
    s.insert(1, QChar('.'));
    s.insert(3, QChar('-'));
    

    【讨论】:

    • 第二种方法在我的情况下似乎更好,因为数字比我的示例 e 中的数字大一点:但这会导致大量重新分配..
    • 我以为您只需要为三位数字执行此操作。如果可能,您可能还想检查该数字是否为负数。
    【解决方案2】:

    没有用于将整数格式化为字符串的内置函数,但您可以通过自己的自定义函数执行自定义格式化。

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2010-09-08
      • 2017-11-16
      • 2017-03-10
      • 2010-10-16
      • 2012-05-08
      相关资源
      最近更新 更多