2015-11-28 2 views
0

Как мне форматировать номер следующим образом?Как мне форматировать номер?

вход:

123 

выход:

1.2-3 

В C# есть ToString() перегрузки для целочисленных типов, делает работу:

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

Есть ли что-то подобное в Qt? Я прочитал документацию QString, но не смог этого сделать.

ответ

2

Например, вы могли бы сделать:

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('-')); 
+0

Второй подход кажется лучше в моем случае, так как число немного больше, чем тот, в моем примере е : но этот результат во многих перераспределениях. – Jack

+0

Я думал, вам нужно всего лишь сделать это для трехзначных чисел. Вы также можете проверить, является ли число отрицательным, если это возможно. – LogicStuff

2

Нет встроенной функции для форматирования целого числа в строку, но для этого вы можете выполнить собственное форматирование с помощью собственной пользовательской функции.