Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 740

/ вопрос открыт /

Здорово всем! У меня вопрос такого плана. Никогда с этим не сталкивался и не могу понять где хоть искать. Вот в чем проблема! У меня есть функция преобразования строки в десятичное число, выглядит она следующим образом:

function StrToFloat2(const S: string):real;
var
i:integer;
begin
if s='' then begin
Result:=-1;
exit;
end;
for I :=1 to Length(S) do
begin
if not (S[I] in ['0'..'9',',']) then begin
Result:=-1;
exit;
end;
end;
Result:=StrToFloat(s);
end;

Все работает (10 компов), но вот на 3-х компьютерах все ровно выдает ошибку плана:

'3,70' is not a valid floating point value.

То есть я уже перевожу строковый формат с запятой...
Вот не могу понять... в чем может быть проблема??? 3,70 - это же типичный REAL... Пробовал менять на точку как разделитель. но тоже самое...
Помогите! Очень надо!!!

Везде системы одинаковые XP (установлены может быть и с разных установочных дисков), но системы Windows XP везде...
Может быть какой библиотеки не хватает???

RAW Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: RAW (статус: Посетитель)
Вопрос отправлен: 12 ноября 2011, 15:54
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 13; последнее сообщение — 14 ноября 2011, 11:34; участников в обсуждении: 5.
min@y™

min@y™ (статус: Доктор наук), 12 ноября 2011, 16:05 [#1]:

Это delphi или паскаль? Если delphi, то почему бы не закончить изобретать велосипеды и воспользоваться функцией TryStrToFloat()?
function TryStrToFloat(const S: string; out Value: Extended): Boolean; overload;
function TryStrToFloat(const S: string; out Value: Double): Boolean; overload;
function TryStrToFloat(const S: string; out Value: Single): Boolean; overload;
function TryStrToFloat(const S: string; out Value: Extended; const FormatSettings: TFormatSettings): Boolean; overload;
function TryStrToFloat(const S: string; out Value: Double; const FormatSettings: TFormatSettings): Boolean; overload;
function TryStrToFloat(const S: string; out Value: Single; const FormatSettings: TFormatSettings): Boolean; overload;
А если паскаль, то есть процедура Val().

Попробуй, вдруг поможет.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
RAW

RAW (статус: Посетитель), 12 ноября 2011, 16:11 [#2]:

а она что? проверяет десятичная ли это вещь????
или можно вывести out как значение???
RAW

RAW (статус: Посетитель), 12 ноября 2011, 16:12 [#3]:

Я вот что сделал... помогло

1. Зайдите в ПУСК
2. Выберите "Настройка"
3. Выберите "Панель управления"
4. Выберите "Язык и региональные стандарты"
5. Во вкладке "Региональные параметры" нажмите кнопку "Настройка"
6. В поле "Разделитель целой и дробной части" поставьте "запятую" (,)
7. Нажмите "ОК"
min@y™

min@y™ (статус: Доктор наук), 12 ноября 2011, 16:33 [#4]:

Цитата (RAW):

а она что? проверяет десятичная ли это вещь???? или можно вывести out как значение???

Хулио ты ж Иглесиас! Ну по параметрам жеж видно всё.

Цитата (RAW):

Я вот что сделал... помогло

1. Зайдите в ПУСК 2. Выберите "Настройка" 3. Выберите "Панель управления" 4. Выберите "Язык и региональные стандарты" 5. Во вкладке "Региональные параметры" нажмите кнопку "Настройка" 6. В поле "Разделитель целой и дробной части" поставьте "запятую" (,) 7. Нажмите "ОК"

Да я, в принципе, так и думал, но надеялся, что ты проведёшь таки эксперимент. :)
Помогло!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 12 ноября 2011, 16:35 [#5]:

Не, не так!
Я надеялся, что ТЫ (именно!!!) проведёшь таки эксперимент! Вот так я хотел!
Если не надоест - станешь программистом.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
RAW

RAW (статус: Посетитель), 12 ноября 2011, 16:43 [#6]:

ППЦ! Станешь программистом - это жуть :)
Да я поболе тебя знаю в программировании...
Я на своих прогах имею доход по 80-90 штук в месяц, так что могу сказать, что программист я все же не пустой...
И главное, что хвалебные оды получаю от клиентов за проги. Это ли не программист...
Просто реально вот вроде шуточный вопрос, а куда лезть не знаю... н благо инет большой...
min@y™

min@y™ (статус: Доктор наук), 12 ноября 2011, 16:54 [#7]:

Цитата (RAW):

Да я поболе тебя знаю в программировании...

Супер, Респект и Уважуха! (аббревиатурка получилась, мдя...)
Раз поболе меня знаешь в программировании, значит перестань задавать детские вопросы и становись тут экспертом, заменишь меня. А то я устал. И зарплата у меня гораздо меньше. И хвалебных од я от клиентов не получаю.

А КУДА ЛЕЗТЬ - Я ЗНАЮ!!!

З.Ы. Желаю Т.У. Адиос, амиго!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
RAW

RAW (статус: Посетитель), 12 ноября 2011, 17:04 [#8]:

Ну ладно-ладно! Спасибо за помощь... Каждому свое! Благодарю тебя...
Тебе тоже удачи... Найди свое и будешь на вершине!!!
Я сам на себя работаю, своя лэйба, свой софт, один программист - я сам, один админ сайта - я, один кассир - я, один специалист -я, один спец.сотрудник - я, один раскрутчик - я, один модератор, экономист, разработчик, написатель скриптов, планировщик задач, бета-тестер... и еще куча всего - один я.
Так что мне тоже не легко. Сам тружусь, сам и зарабатываю.
про 90 штук это раньше.
Сейчас уже поболе... :)
В том месяце заработал на своем софте 280 тыр.
И это только на русском рынке, т.к. с английским у меня проблемы, и на европу пока не знаю как выйти...
хотя уверен, что мой софт будет скупаться как горячие пирожки, если даже сейчас с таиланда, конг конга, латвии, германии, франции покупали (кто с русским дружит).
Вот х.з. токо как на Европу выйти....
Не потянуть одному...
min@y™

min@y™ (статус: Доктор наук), 12 ноября 2011, 17:09 [#9]:

Прочитал. Молодец. Ты настоящий программист.
А я - дворник.
Пойду покурю, заодно раковину отмою от зубной пасты... А то неделю собираюсь, всё никак.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 12 ноября 2011, 22:04 [#10]:

Автор, если вопрос решён, измените его состояние.

Кстати, проблема решается одной строкой:
DecimalSeparator:='.';
min@y™

min@y™ (статус: Доктор наук), 12 ноября 2011, 22:07 [#11]:

Андрюх, ты убил всю интригу! Ну где твоё чувство юмора?!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Толяныч

Толяныч (статус: 4-ый класс), 14 ноября 2011, 08:41 [#12]:

Помогите же человеку! Зуперпрограммер горит на корню! Мегабаксы дохода под угрозой!
Sorry, не удержался...
bugmenot

bugmenot (статус: 3-ий класс), 14 ноября 2011, 11:34 [#13]:

Прикольно, чо
Разбираться в компах программисту не обязательно, он в европу должен форточку прорубать =)
виконання програми розпочинається з того самого мiсця, де призупинилося.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:38
Выполнено за 0.03 сек.