Структура программирования, программирование, языки программирования, книги программирование На сайте представлена информация про программирование в Интернете и работу  

Генерация GUID как строки
Комплексные числа, Есть ли такие в Delphi?
Когда возникает событие OnExit компонента UpDown.
Динамические массивы
DBGrid и Charcase
Обработчик события OnFilterRecord
клиент\сервер......., клиент\сервер как....?
именованный поток (ntfs), какие есть средства?
mailslot, нужна помощь
Как задать идентификатор узла TreeView ?, Идентификатор узла в TreeView
StringGrid - как удалить строку в run-time
Терминальные сессии, Программирование в TS API
Какое условие поставит для Edit в Delphi ?
MP3 Decoder, изменение формата с MP3 на другой
Сравнение текста
Как распечатать Html страницу из TCppWebBrowser
GetTcpTable
TMediaPlayer, MediaPlayer and FullScreen
MDI или SDI?, и другие вопросы...
Kylix GPL Window, Under Mandrake 9.0 Dolphin
StringGrid-как задать Default высоты строки
Символы
Не работает FTP-соединение :(
Определение high-order word
Многосрочный Grid, Многосрочный Grid
Работа с wav'чиком, Нужна помощь
Соединение баз как VFP, Я хочу вставит GRID два поля связанных т
Как округлять до сотых в большую сторону ?, при делении
Нужна помощь
Еще раз о SQL
Проблема, Как распознать кодировку в Мемо?
Как Вы относитесь к курящим девушкам?
Alt, Shif, Ctrl в WM_KEYUP
Как преобразовать GIf в BMP, простым способом?, GIFtoBMP
В основном вопрос к Vit`у, интересный вопрос!
Select item, В ComboBox
DateBase и тип Date
Работа с базами данных, Кому это надо?
SQL в Delphi6, формат даты в SQL
Создание кнопки во время работы
Как изменить что нить компонента на чужой форме?, если не известно его имя?
Помогите с winsock.pas
Отмена стандартной реакции компонента
UML и Delphi, есть ли инструменты?
Память
Экспорт функций
MSHTML_TLB.pas, ошибка при импорте
Как добраться,и запустить что нить из аплета?, Аплет "свойство экрана"
WM_XBUTTONUP,WM_XBUTTONDOWN,WM_XBUTTONDBLCLK
Округление дробной части числа
Две проги, Достали две проги
SQL в ADO, Как правильно нап. запрос для ACCESS
WinSock
Курсор "Лапа", Как прицепить свой курсор к канве
ещё раз о создании...., как добавить иконку в попап меню?
Перетаскивание формы, Какое сообщение?
Toolbar for IE, ----------------
Ловим чатовские мессаги, Ловим чатовские мессаги
Отправка E-Mail, через COM интерфейс Outlook.
Перебор элементов.
Toolbar for IE, ----------------
Работа в Delphi c Access
Загрузка файлов, Загрузка файлов в уже запущенную прогу
ПАМАГИТЕ !!!, Посоветуйте книгу или сайт для новичка.
Глюки с иконками, Иконки из ехе не работает!!!
Каким образом организовать массив разнотипных элем, Создание массива разнотипных элементов
Linux, Какой Linux лучше???
Помогите определить язык прогр. плз
Как Вы относитесь к курящим девушкам?
ScrollBar, Как запретить ScrollBar?

Платные хостинги     Раскрутка сайта     Книги по программированию


Округление дробной части числа

Только здесь 1000 посетителей на Ваш сайт всего за 3 у.е.!

- Ребята! Помогите, пожалуйста, попроще решить задачу: нужно округлить десятичную дробь до заданного кол-ва знаков после запятой, но так, что бы в случае если изначальное число не имеет такой разрядности в ее конец добавлялись нули до нужной длины? Прим. (roundto убирает лишние цифры но не добавляет не достающие).

- недостающие цифры убираются всегда. Например:I:=2.100000000;Showmessage(floattostr(i));покажет 2.1Так что добавление нулей к числовым типам бессмысленно.Используйте строки, для формирования строки используйте команду Format - она может обрезать (не округлять) числа до нужного количества знаков и добавлять недостающие нули. См. хэлп по этой команде

- Вот тебе например с точностью до 5ти знаков:Код  var i:real;begin  I:=2.100000000;  Showmessage(Format('%.5f',[i]))highlightSyntax('delphiIyMzhl','delphi');

- Вот алгоритм написал за 5 минут, корявый, наверное, и неэффективный, впрочем судить вам :function RoundN(Value:Real; Digits:Byte): Real;var I, DigitsCnt: Byte;begin  while Value-Trunc(Value*10)<>0 do  begin    Value := Value*10;    DigitsCnt := DigitsCnt+1;  end;  for I:=DigitsCnt-Digits downto 0 do    Value:=Trunc(Value+0.5)/10;  Result:=Value/10^(DigitsCnt-1);  //Vit, "^" - it's not a power?end;

- Ага, только функции ^ в Дельфи нет (точнее она обозначает совсем другое), и обрезать то она обрезает, только нули не доставляет, как автор просил... А для округления надо использовать Round а не Int (или на крайняк добавлять 0.5)

- Вит, извини, я сделал ошибку, но сразу ее увидел. И когда исправлял, твоего сообщения еще не было. Так должно работать.

- Если у тебя число 2.3, то в памяти оно хранится точно так же как и 2.30000 (в типе Real). А если ты хочешь, чтобы функция возвращала еще и нули, то надо возвращать указатель на строку, в которой это число.

- Знаешь, а мой код компактнее  :Format('%.5f',[i])PS.^ - это не возведение в степень. Это либо обозначения типа указателя:Type PMyBool=^Boolean;Либо обращение к содержимому по адресу:var a:boolean    b:^boolean;...a:=b^;

- Твои код только выводит с нулями, а мой округляет нужное количество цифр. Внимательно прочитай.

- И с округлением, и с добавлением незначащих цифр, и с заранее устанавливаемой точностью. Вроде бы все условия соблюдены...Код function RoundN(Value:Real; Digits:Byte): string;begin  result:=Format('%.'+inttostr(Digits)+'f',[roundto(Value,-Digits)]);end;highlightSyntax('delphiNmZjA=','delphi');

- А вот в старом пасе была ф-ция Str:PReal: real;buf: string;...Str(PReal:3:4,buf);И все ?!

- Можно и так, только она обрежет, а не округлит, собственно Format использует тот же механизм что и Str, только возможностей там больше...

- А код этой функции не приведешь (roundto, несмотря на то что она, скорее всего, стандартная)? В принципе она делает тоже что и моя или нет?Цитата Можно и так, только она обрежет, а не округлит, собственно Format использует тот же механизм что и Str, только возможностей там больше... Только вот в задачах лучше использовать свои функции, оптимизированные под поставленную задачу. А все удобство требует память и время для обработки.

- Согласен

Интернет казино     Онлайн игры     Увеличение члена     Купить DVD


Главная страница | opengl программирование | программирование бейсик | программирование интерфейса | программирование pocket | программирование заказы | задача динамического программирования | prolog программирование | стохастическое программирование | процедурное программирование | история языков программирования | структура программирования | языки программирования высокого уровня | программирование устройств | функции программирования | программирование siemens | списки программирование | язык программирования java | олимпиада программирование | программирование мобильных телефонов | дипломная работа программирование | программирование palm | Ссылки

Все про процедурное программирование