Название: Вывод числа со знаком (Qstring) Отправлено: phpCoder от Января 12, 2015, 20:48 Добрый день.
Можно ли в Qt в Qstring сделать форматированный вывод числа со знаком? Т.е. положительные числа должны быть со знаком "+". Аля sprintf. Пробовал в arg() подставлять "%+d руб", но он пишет, что не понимает. Название: Re: Вывод числа со знаком (Qstring) Отправлено: kambala от Января 12, 2015, 21:21 есть QString::sprintf. а что мешает воспользоваться стандартным sprintf?
Название: Re: Вывод числа со знаком (Qstring) Отправлено: carrygun от Января 13, 2015, 05:30 Можно же применить и безумные вещи, например QString("%1%2 руб.").arg(num > 0 ? "+" : "").arg(num); ;D
Название: Re: Вывод числа со знаком (Qstring) Отправлено: phpCoder от Января 13, 2015, 08:45 есть QString::sprintf. а что мешает воспользоваться стандартным sprintf? Он убогий в плане синтаксиса (в сравнении с php) и deprecated.Название: Re: Вывод числа со знаком (Qstring) Отправлено: Igors от Января 13, 2015, 10:50 Он убогий в плане синтаксиса (в сравнении с php) и deprecated. Есть вещи которые "здесь делаются так". Хорошо или плохо, нравится или нет - это ничего не изменит. Поэтому чем раньше пришедший с пых-пых перестанет фыркать - тем лучше для него :)Название: Re: Вывод числа со знаком (Qstring) Отправлено: phpCoder от Января 13, 2015, 10:56 Вот поэтому ущербность языка надо исправлять, а не оставлять так как есть на долгие годы. :)
Название: Re: Вывод числа со знаком (Qstring) Отправлено: kambala от Января 13, 2015, 14:43 есть QString::sprintf. а что мешает воспользоваться стандартным sprintf? Он убогий в плане синтаксиса (в сравнении с php) и deprecated.Название: Re: Вывод числа со знаком (Qstring) Отправлено: PimenS от Января 13, 2015, 14:48 Вот поэтому ущербность языка надо исправлять, а не оставлять так как есть на долгие годы. :) Чаще всего виновата не ущербность языка, а ущербность мышления. Что тебе мешает написать свой класс, который будет делать все что тебе надо. Название: Re: Вывод числа со знаком (Qstring) Отправлено: phpCoder от Января 13, 2015, 15:57 Вот поэтому ущербность языка надо исправлять, а не оставлять так как есть на долгие годы. :) Чаще всего виновата не ущербность языка, а ущербность мышления. Что тебе мешает написать свой класс, который будет делать все что тебе надо. Это должно быть по определению. Название: Re: Вывод числа со знаком (Qstring) Отправлено: kambala от Января 13, 2015, 16:07 что должно быть? ты же знаешь, что пхпшный (s)printf — это сишный (s)printf?
Название: Re: Вывод числа со знаком (Qstring) Отправлено: PimenS от Января 13, 2015, 18:20 Это должно быть по определению. Что должно быть? Вывод положительного числа со знаком "+" в виде QString? Наверное этого не нужно было разработчикам Qt. Мне так тоже за 20 лет работы с учетными программами ни разу не понадобилось. Сделай простейшую функцию Код: QString qrealToString(qreal i) {return QString::number(i).prepend(i > 0 ? "+" : "");} Название: Re: Вывод числа со знаком (Qstring) Отправлено: phpCoder от Января 13, 2015, 21:53 что должно быть? ты же знаешь, что пхпшный (s)printf — это сишный (s)printf? Только первый возвращает строку (мы ж со строками работаем), а второй число (О_О).Функцию писать не хочу. Зачем еще один велосипед. Сделал так: tr().springf("%+d"); Название: Re: Вывод числа со знаком (Qstring) Отправлено: kambala от Января 13, 2015, 21:59 Только первый возвращает строку (мы ж со строками работаем), а второй число (О_О). ну как бы первым параметром ты и передаешь строку, в которую будет записан результат... стандартная практика в сишных функциях.Сделал так: tr().springf("%+d"); выглядит адово, зато сэкономил пару строчек!Название: Re: Вывод числа со знаком (Qstring) Отправлено: PimenS от Января 13, 2015, 22:52 Сделал так: tr().springf("%+d"); Если имеется ввиду QString::sprintf, то лучше ее не использовать Цитировать Warning: We do not recommend using QString::sprintf() in new Qt code. Instead, consider using QTextStream or arg(), both of which support Unicode strings seamlessly and are type-safe Название: Re: Вывод числа со знаком (Qstring) Отправлено: Igors от Января 14, 2015, 09:02 ну как бы первым параметром ты и передаешь строку, в которую будет записан результат... стандартная практика в сишных функциях. Вопрос к phpCoder: а почему первым? Если имеется ввиду QString::sprintf, то лучше ее не использовать И потом долго и нудно изучать форматки потока :) Нет, теоретически это конечно правильно, но боже мой, в какую длинную соплю выливается c << простая печать напрКод
Название: Re: Вывод числа со знаком (Qstring) Отправлено: Old от Января 14, 2015, 14:05 но боже мой, в какую длинную соплю выливается c << простая печать напр Конечно. :)Код
А boost.format возвращает все на "круги своя" с дополнительными ништяками. Только я ничего не говорил... :) |