|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Как ограничить количество знаков числа после запятой
Имеется вычисляемой поле Edit. Иногда получается так, что в нем после запятой много цифр. Как ограничить количество цифр после запятой?
Использовал функцию FloatToStrF, но не пойму что значит precision (точность), т.к. если при изменении этого параметра получается разный результат |
#2
|
|||
|
|||
precision - это общая точность представления числа, зависящая от типа переменной, которая преобразовывается в строку. Как привило, этот параметр устанавливается в 0, если предполагается использовать функцию FloatToStrF для разных типов переменных или по максимальной точности, если предполагается определенный тип значения: 7 или меньше для значений типа Single, 15 для Double, 18 или меньше для типа Extended.
Для определения количества знаков после запятой надо использовать последний параметр Digits в функции FloatToStrF. Не забывайте делать резервные копии |
#3
|
||||
|
||||
Цитата:
|
#4
|
|||
|
|||
чего то не получается, вот код
поле Edit28.Text получается как сумма нескольких полей полей Edit28.Text:=FloatToStr(a+b+c+d); Itogo:=StrToFloat(Edit28.Text); FloatToStrF(Itogo,ffFixed,0,2); что не так Последний раз редактировалось Михалыч, 02.10.2008 в 21:16. |
#5
|
|||
|
|||
А почему все должны гадать что именно не получается (телепаты в отпуске)?
Или утверждение: "поле Edit28.Text получается как сумма нескольких полей полей" - это и есть то что "не получается"? Конкретнее, пожалуйста, о своей проблеме. В какой строке не получается и как такое "не получается" выглядит? Воспроизвел эти строки один к одному - все нормально работает. А почему возвращаемое значение функции FloatToStrF(Itogo,ffFixed,0,2); ничему не присваивается? Так надо? Не забывайте делать резервные копии |
#6
|
|||
|
|||
Не получается в том смысле, что после запятой все равно больше двух знаков
|