Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2008, 12:09   #1
Petrucci
Пользователь
 
Регистрация: 03.07.2008
Сообщений: 17
По умолчанию кол-во знаков после запятой в TEdit

Подскажите как можно регулировать количество знаков после запятой в выводимом числе, кол-во знаков вводиться в диапазоне допустим от 1 до 20
Petrucci вне форума Ответить с цитированием
Старый 04.07.2008, 12:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Попробуй выставь CurrencyDecimals в нужное число знаков.
Хотя помоему нужно будет всетки свой анализатор писать, мол типа
В OnKeyPress Эдита найти позицию точки и отнять ее от длины введенной строки, и если больше чем надо то запретить ввод после точки
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2008, 12:26   #3
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Используй TMaskEdit
_Engine_ вне форума Ответить с цитированием
Старый 04.07.2008, 12:35   #4
Petrucci
Пользователь
 
Регистрация: 03.07.2008
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Попробуй выставь CurrencyDecimals в нужное число знаков.
Хотя помоему нужно будет всетки свой анализатор писать, мол типа
В OnKeyPress Эдита найти позицию точки и отнять ее от длины введенной строки, и если больше чем надо то запретить ввод после точки
я так и сделал вот
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var n:integer;
begin
n:=form1.SpinEdit1.Value;
if Pos(',',edit1.Text) <> 0 then begin
if Length(edit1.Text)- Pos(',',edit1.Text) > (n-1) then Key := Chr(0);
end;
end;
но тут вопрос не для вводимых, а для выводимых!
Petrucci вне форума Ответить с цитированием
Старый 04.07.2008, 12:36   #5
Petrucci
Пользователь
 
Регистрация: 03.07.2008
Сообщений: 17
По умолчанию

Цитата:
Сообщение от _Engine_ Посмотреть сообщение
Используй TMaskEdit
можно поподробней?
Petrucci вне форума Ответить с цитированием
Старый 04.07.2008, 12:52   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не для вводимых, а для выводимых!
ТОгда функой format пользуй, она форматит выводимое как ей скажешь
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2008, 12:56   #7
Petrucci
Пользователь
 
Регистрация: 03.07.2008
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
ТОгда функой format пользуй, она форматит выводимое как ей скажешь
если ты про функцию formatfloat, то это меня и интерисует как реализовать возможность выбора кол-ва отображаемых цыфр после запятой выведеного числа!
Petrucci вне форума Ответить с цитированием
Старый 04.07.2008, 13:01   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можно сделать так:

uses
Math,...

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=FloatToStr(RoundTo(StrT oFloat(Edit1.Text),0));
end;

Значением 0 (...-1, ..1...) ну и так далее - можешь устанавливать знаки после запятой или как их округлять.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 04.07.2008, 13:10   #9
Petrucci
Пользователь
 
Регистрация: 03.07.2008
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Terran Посмотреть сообщение
Можно сделать так:

uses
Math,...

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=FloatToStr(RoundTo(StrT oFloat(Edit1.Text),0));
end;

Значением 0 (...-1, ..1...) ну и так далее - можешь устанавливать знаки после запятой или как их округлять.
спасибо, заработало!
Petrucci вне форума Ответить с цитированием
Старый 04.07.2008, 13:15   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я скажу так:
Допустим есть Эдит куда я вводу число, лабел куда я хочу вывести это число отформатированным как надо, и СпинЭдит которым я на ходу устанавливаю количество знаков после запятой тогда:
Код:
Label1.Caption:=Format('%5.'+inttostr(UpDown1.Position)+'f',[StrToFloatDef(Edit1.Text,0)])
Даст тебе нужный эффект. Яснышко?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление не нужных знаков после запятой. Alar Общие вопросы Delphi 4 31.05.2012 19:59
как отрегулировать кол-во знаков после запятой, при выведении числа(delphi) photozaz Общие вопросы Delphi 11 10.02.2011 21:20
Количество цифр после запятой LIEN БД в Delphi 7 03.07.2008 22:12
Сокращение после запятой Romuald Microsoft Office Excel 21 18.12.2007 10:32
Ограничение знаков после запятой,StringGrid Gorin Компоненты Delphi 9 20.09.2007 16:10