Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.03;
Скачать: CL | DM;

Вниз

Разделитель в числах real   Найти похожие ветки 

 
GEN++ ©   (2006-04-25 23:09) [0]

Как программно узнать: какой символ в системе используется
в качестве разделителя целой и дробной части "." или ","
для вывод в виде строки текста чисел в формате
"с плавающей точкой"


 
Lamer@fools.ua ©   (2006-04-26 00:46) [1]

GetLocaleInfo() + LOCALE_SDECIMAL


 
AbrosimovA ©   (2006-04-26 08:29) [2]

Пишешь DecimalSeparator:=".", например, в FormCreate и проблем с точкой не будет, даже если в системе в качестве разделителя установлена запятая.


 
Чапаев ©   (2006-04-26 09:30) [3]


> проблем с точкой не будет, даже если в системе в качестве
> разделителя установлена запятая

Ага, а если пользователь привык, что целую и дробную часть разделяет запятая и её-родимую и жмёт? Станешь объяснять, что кульные хацкеры используют для разделения целой и дробной частей исключительно точку?


 
Lamer@fools.ua ©   (2006-04-26 09:36) [4]

>Пишешь DecimalSeparator:=".", например, в FormCreate и проблем с точкой не будет

Этого мало. Во-первых, ещё надо:
Application.UpdateFormatSettings := False;
А во-вторых, см. [3].


 
zaqwsx   (2006-04-26 14:15) [5]


> Ага, а если пользователь привык, что целую и дробную часть
> разделяет запятая и её-родимую и жмёт? Станешь объяснять,
>  что кульные хацкеры используют для разделения целой и дробной
> частей исключительно точку?


при нажатии запятой программно ставить точку.


 
GEN++ ©   (2006-04-27 08:58) [6]

Спасиюо всем. Все получилось

Моя пограмма генерит файл фрмата *.csv который далее
читает XL. В файле создаются числа целые и с плавющей
точкой.


 
GanibalLector ©   (2006-04-28 00:31) [7]

Вообще-то, не обязательно ее принудительно ставить. Ведь можно и просто считать :

 case Byte(DecimalSeparator) of
  44: Caption:="Preved" ;
  46: Caption:="Medved";
  else Caption:="Fignya";
 end;


 
antonn ©   (2006-04-28 10:04) [8]

function GetNormalize_text(s:string):string;
var i:integer; _b:boolean;
begin
_b:=false;
for i:=length(s) downto 1 do begin
if not(s[i] in ["0".."9"]) then
if (s[i] in [",","."]) then begin
  if _b then delete(s,i,1) else begin
   _b:=true;
    s[i]:=DecimalSeparator;
  end;
end else delete(s,i,1);
end;
if s="" then s:="0";
result:=s;
end;


нормализует текст, удаляет буквы и лишние знаки препинания:)


 
biejo ©   (2006-05-08 01:23) [9]

Пример. Просто, надежно.
пустая форма, одна кнопка.
...

procedure TForm1.Button1Click(Sender : TObject);
Begin
 Button1.Caption:=copy(floattostr(1.1),2,1);
End;


....
нажми кнопку - получишь результат


 
Германн ©   (2006-05-08 02:43) [10]


> GanibalLector ©   (28.04.06 00:31) [7]
>
> Вообще-то, не обязательно ее принудительно ставить. Ведь
> можно и просто считать :


Имхо, в пользовательской программе как правило, её и нужно только читать!



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

Текущий архив: 2006.09.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
15-1155188843
Ega23
2006-08-10 09:47
2006.09.03
С Днём рождения! 10 августа


15-1155336576
SerJaNT
2006-08-12 02:49
2006.09.03
АДМИНАМ: надо бороться со спамом


2-1155698844
California
2006-08-16 07:27
2006.09.03
Что такое XPManifest ?


2-1155205159
GEM
2006-08-10 14:19
2006.09.03
Обработка большой БД. Ошибка "...is too large"


6-1145033726
UKRSHEV
2006-04-14 20:55
2006.09.03
Доступ к URL, требующим авторизации.