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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2009, 22:17
EleGant EleGant вне форума
Прохожий
 
Регистрация: 13.10.2009
Сообщения: 20
Репутация: 10
По умолчанию Числа после запятой

Подскажите плиз...в поиске не нашел...
Нужно убрать числа после запятой вызванные при деление....например у меня в Лайбеле выводиться "5.78945482319".
А хотелось бы убрать после точки все цифры..как сделть?
Ответить с цитированием
  #2  
Старый 13.10.2009, 22:42
Ama Ama вне форума
Активный
 
Регистрация: 15.07.2008
Сообщения: 260
Репутация: 23
По умолчанию

Если "Х" твоя переменная, то Round(X) будет равно 6, а Trunc(X) будет равно 5. Вот и все проблемы.
Ответить с цитированием
  #3  
Старый 13.10.2009, 23:49
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Вариантов много, один вам уже дали.
Вот второй:
Код:
1
Label1.Caption := Format('%2.0f', [5.12345]);
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 14.10.2009, 09:44
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Да, но при Round(1.5) = 2 и при Round(2.5) = 2.
Где- то стырил функцию "правильного" округления
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function RoundEx(X: Double; Precision: Integer ): Double// округлить не по дефолту
{
Precision :
1 - до целых
10 - до десятых
100 - до сотых
...
}
var
  ScaledFractPart, Temp: Double;
begin
  ScaledFractPart := Frac(X) * Precision;
  Temp := Frac(ScaledFractPart);
  ScaledFractPart := Int(ScaledFractPart);
  if Temp >= 0.5 then
    ScaledFractPart := ScaledFractPart + 1;
  if Temp <= -0.5 then
    ScaledFractPart := ScaledFractPart - 1;
  RoundEx := Int(X) + ScaledFractPart / Precision;
end;

Последний раз редактировалось TOJluK, 14.10.2009 в 09:50.
Ответить с цитированием
  #5  
Старый 14.10.2009, 15:04
EleGant EleGant вне форума
Прохожий
 
Регистрация: 13.10.2009
Сообщения: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ama
Если "Х" твоя переменная, то Round(X) будет равно 6, а Trunc(X) будет равно 5. Вот и все проблемы.
Вот этот способо пригодился!! Большое спасибо всем!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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