2 / 2 / 0
Регистрация: 02.07.2021
Сообщений: 114
|
||||||
1 | ||||||
RAD XE3+ Решено. Как узнать разделитель дроби в вещественных числах08.11.2023, 05:32. Показов 2023. Ответов 66
Метки delphi 10.3 (Все метки)
Win7-64
Delphi 10.3 При обработке строки в число StrToFloat у меня возникала ошибка, проблема старая, это точка или запятая, смотря какая настройка. В старых версиях до XE6, это решалось глобальной переменной DecimalSeparator, но потом ее убрали. Есть предложения в тырнете ставить принудительно разделитель, но оказывается, через час-два настройки слетали на умолчание, так что нужно только чтение. Свежее решение от 2023 года было нагуглено. Сейчас все конвертится нормально.
0
|
08.11.2023, 05:32 | |
Ответы с готовыми решениями:
66
Как определить разделитель в десятичных числах Как определить разделитель десятичной дроби (decimal separator) Visual C++ 2008 Разделитель в числах с плавающей точкой Как заставить выводить точку в вещественных числах? Програмно изменить Регион и разделитель в числах в Windows |
Модератор
|
||||||
08.11.2023, 06:06 | 2 | |||||
это что за бред? Да и не только это...
0
|
2 / 2 / 0
Регистрация: 02.07.2021
Сообщений: 114
|
|
08.11.2023, 06:43 [ТС] | 3 |
Чистим мусор, in вообще самая удобная, а then else чем не нравится ?
Народ в тырнете жалуется, что не работает эта фигня. Да и вообще инфа по этой теме разделителя в основном старая, я уже все перекопал
0
|
Модератор
|
|
08.11.2023, 06:52 | 4 |
т.е. тот факт, что из фразы, как на скрине, мы получаем кошерное действительное число - Вас не смущает? Не слишком ли Вы чисткой увлеклись?
т.е. и я и еще 99% Delphi-разработчиков этим пользуются и даже и не знают, что, по мнению Васи Пупкина, "эта фигня не работает"? А какая "инфа" Вам нужна? Ничего нового со времен Delphi 3, как бы, не придумали за исключением мелких усовершенствований...
1
|
2 / 2 / 0
Регистрация: 02.07.2021
Сообщений: 114
|
|
08.11.2023, 07:15 [ТС] | 6 |
На оверклокере говорили, где-то еще, много всего читал сегодня
Всякое бывает, можно и отключить. Например DecimalSeparator переименовали в другое имя и переместили в SysUtils, потом и там удалили. Это стиль написания такой, экономит минимум 1 слово, об этом редко упоминают в книгах.
0
|
Модератор
|
|
08.11.2023, 07:18 | 7 |
я вам подскажу как еще одну букву сэкономить: используйте not и секцию else можно вообще не писать - экономия!
Добавлено через 43 секунды правильно не упоминают, потому как чушь.
0
|
2 / 2 / 0
Регистрация: 02.07.2021
Сообщений: 114
|
|
08.11.2023, 07:26 [ТС] | 8 |
Специально сейчас проверил - not не работает, дает ошибку. Еще и else, я же сказал, что экономия есть.
Неа, наоборот, это фишка такая
0
|
Модератор
3756 / 2260 / 782
Регистрация: 15.11.2015
Сообщений: 8,989
|
|
08.11.2023, 09:08 | 10 |
Работает. Просто не нужно вводить всякий мусор вместо чисел. Я ещё понимаю, можно убрать пробелы спереди и сзади функцией Trim(). А остальное убирать не нужно.
В отличие от ТС, ты выражение после not поместил в скобки.
0
|
237 / 203 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
|
08.11.2023, 09:51 | 12 |
Это не стиль написания, это языковая безграмотность.
Логично. Экономия символов в тексте программы при помощи таких приемов - это треш.
0
|
Модератор
3756 / 2260 / 782
Регистрация: 15.11.2015
Сообщений: 8,989
|
||||||
08.11.2023, 10:11 | 13 | |||||
Кстати, если считать и скобки, то даже больше на 1 символ.
1
|
Злостный нарушитель
9592 / 5188 / 1182
Регистрация: 12.03.2015
Сообщений: 24,492
|
||||||
08.11.2023, 10:27 | 14 | |||||
1
|
237 / 203 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
|
08.11.2023, 11:18 | 16 |
Господа, вас что - штрафуют за использовании лишних байт на дисковом пространстве?
0
|
2 / 2 / 0
Регистрация: 02.07.2021
Сообщений: 114
|
||||||
10.11.2023, 22:50 [ТС] | 19 | |||||
Угу, набираешь число в Edit и запросто пробел в середину втыкаеш, лихко. И еще, у буржуев прочитал, что разделителем может быть вообще @, все вопросы к ним по этой теме.
Дык я в книге об этом и прочитал, попробовал, реально код меньше, мне понравилось Ну и дальше? Потом проверять в мейне, код растет, любой TryStrToFloat требует проверки. Где инициализация ? И в скобки и без, D10.3 не понимает, я прямо скопировал твой код, пишет ошибку Теперь короче, 4 строки
0
|
13 / 11 / 2
Регистрация: 11.10.2023
Сообщений: 138
|
|
10.11.2023, 22:59 | 20 |
Охренеть! 10.3 на Хрюше работает???
0
|
10.11.2023, 22:59 | |
10.11.2023, 22:59 | |
Помогаю со студенческими работами здесь
20
Как узнать разделитель в файловой системе? (Решено) Как я могу узнать размер экрана в пикселях? Точка и запятая в вещественных числах Ошибки из-за погрешности в вещественных числах Как сменить системные параметры: десятичный разделитель и разделитель в дате? Найти значение модуля |ax-b| при заданных a, b - вещественных числах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |