Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Вниз

FloatToStr   Найти похожие ветки 

 
grisme ©   (2006-08-06 05:44) [0]

Как заставить сабжевую функцию съесть число с дробной точкой, т.к. ей подавай с запятой?..:0)


 
SerJaNT ©   (2006-08-06 07:59) [1]

наверное число не вкусное. поперчил, посалил?


 
SergP ©   (2006-08-06 08:21) [2]

FloatToStr числа с точками кушать просто так не станет, нужно точку указать в "национальных блюдах" (региональных настройках), либо перед тем как кормить FloatToStr, нужно сначала точку дать попробовать DecimalSeparator,после чего FloatToStr тоже станет кушать числа с точками..

:-)


 
SerJaNT ©   (2006-08-06 08:25) [3]


> FloatToStr числа с точками кушать просто так не станет,
> нужно точку указать в "национальных блюдах" (региональных
> настройках), либо перед тем как кормить FloatToStr, нужно
> сначала точку дать попробовать DecimalSeparator,после чего
> FloatToStr тоже станет кушать числа с точками..


одним словом, нужно сначала продегустировать. Так?


 
Loginov Dmitry ©   (2006-08-06 10:35) [4]

> Как заставить сабжевую функцию съесть число с дробной точкой,
> т.к. ей подавай с запятой?..:


Вы случаем ниче не путаете? Функция FloatToStr просто преобразует вещественное число в строковое представление.
Если речь идет о функции StrToFloat, то могу предложить следующий вариант:

function StrToFloat(S: string): Extended;
var
 C: Char;
 I: Byte;
begin
 if DecimalSeparator = "." then C := "," else C := ".";
 I := Pos(C, S);
 if I > 0 then S[I] := DecimalSeparator;
 if not TextToFloat(PChar(S), Result, fvExtended) then
   raise Exception.CreateFmt(matInvalidFloat, [S]);
end;


 
grisme ©   (2006-08-06 11:13) [5]

Просто на коде в билдере вылазят странного рода ошибки. Сначала билдер ругался на перевод double числа в строку и его вывод, хотя несколько моментов назад вывел целую тонну таким же образом переведенных чисел.) Теперь указывает мне на while (условие) { и сообщает, invalid floating operation.

Зы.в условии только сравнение, причем при отладке оно дает истину..:0) и тут же ошибка...спасибо за ответы по DecimalSeparator"у, я тоже пробовал преобразовывать до того, как запостил в этот раздел, видимо причина не в этом..:0)


 
Юрий Зотов ©   (2006-08-06 11:21) [6]

function Str2Float(const S: string): extended;
begin
 Result := StrToFloat(StringReplace(StringReplace(S, ".", DecimalSeparator, []), ",", DecimalSeparator, []))
end;


 
grisme ©   (2006-08-06 12:11) [7]

почему при сравнении двух переменных(в while или if) с типом double, возникает исключение Invalid Floating Operation(на всякий случай, это на C++ Builder)?:0(


 
palva ©   (2006-08-06 22:45) [8]

grisme ©   (06.08.06 12:11) [7]
Возможно, при вычитании двух очень маленьких близких чисел произошла потеря точности (underflower) ?
Нельзя ли получить более подробную диагностику? и сами числа неплохо бы привести.


 
Rater1   (2006-08-07 08:17) [9]

Может комп перегрузить - бывает чего-то кривеет и дельфи начинает ругаться где не попадя... (было один раз такое)...


 
umbra ©   (2006-08-07 10:09) [10]

подобная ошибка "из ниоткуда" (Invalid Floating Point Operation) случается и в делфи при работе в отладчике. Если убрать ближайшую к точке возникновения ошибки точку прерывания, то она исчезнет как по волшебству.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.044 c
15-1153826186
Nic
2006-07-25 15:16
2006.08.27
Слово о Макдональдсах


2-1155098588
importru
2006-08-09 08:43
2006.08.27
Дельта групп импортёр.


2-1154930963
валет
2006-08-07 10:09
2006.08.27
word


4-1146644214
Zhekacoder
2006-05-03 12:16
2006.08.27
Как из Делфи узнать, что к компу подключена флэшка?


1-1153251715
Gloomer
2006-07-18 23:41
2006.08.27
Как перекодировать строку из UTF-8 в ANSI?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский