Главная страница
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.127 c
15-1154631863
imbalsde
2006-08-03 23:04
2006.09.03
Время на написание программы


4-1147002915
Dstr
2006-05-07 15:55
2006.09.03
ApplicationEvents1Message


15-1155312600
IMHO
2006-08-11 20:10
2006.09.03
Отбор к Евро-2008


3-1151456492
merko
2006-06-28 05:01
2006.09.03
из Delphi в ADOConnection не видно SQL Server 2000


15-1155452450
БарЛог
2006-08-13 11:00
2006.09.03
Смеялся по потери пульса