| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > StrToFloat |
| Автор: HighTemplar 26.5.2005, 14:03 |
| Необходимо извлечь из Edit1 значение, введённое пользователем, в числовую t. Пишу: t:=strtofloat(Edit1.text); При этом прога компилится, но сразу вслед за этим выдаётся окно ошибки класса EConvertError. В поле var описана типа Extended: t:Extended; пробовал типа Real, но то самое. Integer не подходит, нужна дробная часть. В чём же ошибка? |
| Автор: ~FoX~ 26.5.2005, 14:10 |
| Делитель дробной части должен быть правильный при вводе числа в Edit1. |
| Автор: Snowy 26.5.2005, 14:10 |
| Используй TryStrToFloat Иначе будешь ловить ошибку, tcpb в поле пустота или нечисловое значение. |
| Автор: chaos 26.5.2005, 14:17 | ||
| или просто запрети вводить точку, вот тебе тривиальный пример для ввода чисел
|
| Автор: Snowy 26.5.2005, 16:39 | ||
Не серъезно. Во-первых я могу вставить текст. Во-вторых на пустоту все равно будет ругаться. В-третьих у меня в системе может быть именно точка, а не запяточка. В-четвертых я могу ввести '11,22,33,44' - проглотит, а глюк будет. Нет, тут нужно просто аккуратный перевод делать. TryStrToFloat самое то. |
| Автор: gepard 27.5.2005, 07:09 | ||||||
Число в edit1 должно писаться через ",", а не через ".". То бишь:
А не
|
| Автор: Snowy 27.5.2005, 09:05 | ||
Сказки. Разделитель может быть любым знаков, в зависимости от того, что установлено в системе. У меня, например, как раз точка, а не запяточка. Я как-то ради эксперимента ставил вообще текстовые разделители. |
| Автор: ~FoX~ 27.5.2005, 09:16 |
| Snowy прав......разделителем может быть и буква зю в корейской кодировке, не вопрос.... Так, что либо TryStrToFloat, либо перед исполнением вкалатить проверку на корректность. Т.е. если пусти, если разделитель не тот, если разделителей несколько, если число превосходит максимальное количество знаков и т.д. А можно вывернуться и написать компонент наследника отSpinEdit-a например для работы с числами типа Extendet, но ИМХО овчинка выделки не стоит. |