Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.10.2008, 18:54
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию Как ограничить количество знаков числа после запятой

Имеется вычисляемой поле Edit. Иногда получается так, что в нем после запятой много цифр. Как ограничить количество цифр после запятой?
Использовал функцию FloatToStrF, но не пойму что значит precision (точность), т.к. если при изменении этого параметра получается разный результат
Ответить с цитированием
  #2  
Старый 01.10.2008, 19:15
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

precision - это общая точность представления числа, зависящая от типа переменной, которая преобразовывается в строку. Как привило, этот параметр устанавливается в 0, если предполагается использовать функцию FloatToStrF для разных типов переменных или по максимальной точности, если предполагается определенный тип значения: 7 или меньше для значений типа Single, 15 для Double, 18 или меньше для типа Extended.
Для определения количества знаков после запятой надо использовать последний параметр Digits в функции FloatToStrF.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #3  
Старый 02.10.2008, 08:02
Аватар для artemavd
artemavd artemavd вне форума
Начинающий
 
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
По умолчанию

Цитата:
Использовал функцию FloatToStrF
и что? напиши обработку ответа так и увидишь сколько и что получится: например, FloatToStrF(x,ffFixed,0,2). В ответе будет число, вычислимое формулой х, будет 1 знак до запятой и два числа после нее. посмотри справку, там понятно написано.
Ответить с цитированием
  #4  
Старый 02.10.2008, 21:06
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

чего то не получается, вот код
поле Edit28.Text получается как сумма нескольких полей полей

Edit28.Text:=FloatToStr(a+b+c+d);
Itogo:=StrToFloat(Edit28.Text);
FloatToStrF(Itogo,ffFixed,0,2);

что не так

Последний раз редактировалось Михалыч, 02.10.2008 в 21:16.
Ответить с цитированием
  #5  
Старый 02.10.2008, 21:28
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

А почему все должны гадать что именно не получается (телепаты в отпуске)?
Или утверждение: "поле Edit28.Text получается как сумма нескольких полей полей" - это и есть то что "не получается"? Конкретнее, пожалуйста, о своей проблеме.
В какой строке не получается и как такое "не получается" выглядит?
Воспроизвел эти строки один к одному - все нормально работает.
А почему возвращаемое значение функции FloatToStrF(Itogo,ffFixed,0,2); ничему не присваивается? Так надо?
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #6  
Старый 02.10.2008, 22:16
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Не получается в том смысле, что после запятой все равно больше двух знаков
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter