Автор Тема: функция string есть, а есть ли возможность введения противоположной функции int  (Прочитано 1191 раз)

bandrew

  • Ученик
  • *
  • Сообщений: 16
  • Благодарностей 1
Очень полезная штуковина. Если не составит труда, можно ли ввести в будущий выпуск?

Смысл в следующем: это "костыль" вместо If - then.
К примеру, имеется поле типа "переключатель" с 4 разными значениями, а служебное поле принимает какое-либо числовое значение, в зависимости от значения в поле переключателя.

String(Пол=Мужской?0,217:0,11)

Следующим этапом нужно суммировать значения в служебных полях, вот только они не суммируются, ибо внешне цифры, а "в душе" string. Наверняка в Qt предусмотрена такая функция, как конвертация значения поля в integer.[/code]

vladimir.runa

  • Главный модератор
  • Мастер
  • **
  • Сообщений: 341
  • Благодарностей 22
  • skype: vladimir.runa
Функция INT реализована в конструкторе в скрытом виде: можно копировать из строки в число. Только не надо забывать установить требуемое число знаков после запятой у числа, куда копируется значение.

Можно использовать не переключатель, а ссылку на объект, в котором каждому ключевому значению соответствует числовой результат. В этом случае String с условием применять не надо.
Если всё-таки хочется использовать переключатель, то результат составного поля надо копировать в число с заданным количеством знаков после запятой.

Если надо использовать 3 и более значения в переключателе, то в составном поле выстраивается формула для получения одного результата из 3-х и более. К примеру:
[String(Переключатель=да?-0,5:)][String(Переключатель=нет?1,0:)][String(Переключатель=не знаю?3,5:)]

runa.natalia

  • Главный модератор
  • Подмастерье
  • **
  • Сообщений: 118
  • Благодарностей 9
  • vk.com/runabase
Подобное решение описано в "Маленьких хитростях": https://vk.com/topic-64653928_30221761?post=754
Информация о новых версиях и список изменений: http://vk.com/runabase

 

Яндекс.Метрика