Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Округление дробных чисел [D7, XP]


Страницы:   1 2

Кирей ©   (2010-11-10 09:43:00) 

Как округлить число например 1,444445 до 1,45? пробовал RoundEx, RoundTo, SimpleRoundTo, FloatToStrF, все функции округляют до 1,44, неужели строку разбирать?


Inovet   (2010-11-15 11:18:00) [1]

> [19] Олег Крапривин   (11.11.10 19:53)
> Если в Дельфи есть подобные функции, пожалуйста в студию

Не совсем в Делфи

> [12] И. Павел ©   (11.11.10 09:14)
> http://cc.embarcadero.com/Item/21909

и совсем не Делфи округляет "неправильно".


Anatoly Podgoretsky   (2010-11-12 18:18:00) [2]

> Jeer  (12.11.2010 17:45:22)  [22]

Профессиональное решение.


Jeer   (2010-11-12 17:45:00) [3]


> Олег Крапривин   (11.11.10 19:53) [19]


Надо было в уме складывать, потом бы просто вводил результат.


Dennis I. Komarov   (2010-11-12 17:42:00) [4]


> Мне один раз пришлось сталкнуться с подобной проблемой.
> Столбик из 60-ти(или около того) цифр. А сумма не сходится!
>  На копейки правда, но программа не шла. Мне пришлось преобразовывать
> вещественные числа в строки, урезать их, а потом преобразовывать
> их обратно. Задача была сдана!

Значит не так складывал, т.е. ошибка в программе. А ошибка из-за неправильного представления хранения чисел вещественного типа.


Ой   (2010-11-12 05:20:00) [5]

Правильно! Долой математику!!!... ужас, куда катимся....


Олег Крапривин   (2010-11-11 19:53:00) [6]

Мне один раз пришлось сталкнуться с подобной проблемой. Столбик из 60-ти(или около того) цифр. А сумма не сходится! На копейки правда, но программа не шла. Мне пришлось преобразовывать вещественные числа в строки, урезать их, а потом преобразовывать их обратно. Задача была сдана!

Если в Дельфи есть подобные функции, пожалуйста в студию, хотя это не функции Дельфи, а Паскаля(начиная от версии 3.0)


Anatoly Podgoretsky   (2010-11-11 14:23:00) [7]

> Nickolay  (11.11.2010 09:41:15)  [15]

Сказки не рассказывай.


Dennis I. Komarov   (2010-11-11 14:09:00) [8]


> Nickolay   (11.11.10 09:41) [15]
> Правильно, а зато если вумный хакер будет эту неучитываемую
> полкопейку себе
> сбрасывать, то будет приличные бабки колотить-заколачивать.

Сказки для непонимающих, потому как не вумный, ибо все там прозрачно...


Плохиш   (2010-11-11 11:54:00) [9]


> Nickolay   (11.11.10 09:41) [15]
>
> Правильно, а зато если вумный хакер будет эту неучитываемую
> полкопейку себе
> сбрасывать, то будет приличные бабки колотить-заколачивать.
>

Были такие в истории, камера для хитропопого тоже была найдена.


Nickolay   (2010-11-11 09:41:00) [10]

Правильно, а зато если вумный хакер будет эту неучитываемую полкопейку себе
сбрасывать, то будет приличные бабки колотить-заколачивать.


Anatoly Podgoretsky   (2010-11-11 09:22:00) [11]

У нас бухгалтеры и налоговики не заморачиваются, как программа посчитала, так и правильно, и не волнует, что в Экселе другие результаты, кого волнуют полкопейки, когда на конвертации валюты погрешность вообще огромная.


Anatoly Podgoretsky   (2010-11-11 09:18:00) [12]

> Nickolay  (11.11.2010 08:02:08)  [8]

Потому что у них были деньги.


И. Павел   (2010-11-11 09:14:00) [13]

> [0] Кирей   (10.11.10 09:43)

Кстати, если вам все же потребуется бухгалтерское округление, то используйте этот модуль: http://cc.embarcadero.com/Item/21909, т.к. стандартное дельфийское округление может работать не так, как ожидается.


12   (2010-11-11 09:08:00) [14]

не скажу за древних, не знаком
не скажу за бухов, среди них знакомых у меня не более, чем древних греков

а в школе учили

> Если отбрасываемая цифра - 5

то +1 надо.


Nickolay   (2010-11-11 08:16:00) [15]

Про древних греков слышал, но точно не скажу - они или не они.

Да, а 9, конечно, превращаем в 0 и округляем с избытком:

1,495 -> 1,50
1,95 -> 2,0

А ошибка минимизируется, потому что четных и нечетных цифр одинаковое количество - по 5 штук. И если все они появляются равновероятно, то округления с избытком и недостатком гасят ошибки друг друга. В принципе, точно также можно было бы округлять и до ближайшей нечетной цифры, но в бухгалтерии, действительно, традиционно принято до четной.


sniknik   (2010-11-11 08:07:00) [16]

> Это еще, говорят, древние греки придумали.
это называется бухгалтерское округление, минимизируем ошибку округления при составлении больших отчетов. (чем больше цифр складывается для суммы отчета, тем более действенно)  
а древние греки, они что цену на рис поштучно считали?


Nickolay   (2010-11-11 08:02:00) [17]


> 12 ©   (10.11.10 11:34) [6]
>  
> округлить до 1,44445
> округлить до 1,4445
> округлить до 1,445
> округлить до 1,45

Если отбрасываемая цифра - 5, то остающаяся младшая цифра должна быть приведена к ближайшей четной цифре. Например:
1,445 -> 1,44
1,435 -> 1,44
1,45 -> 1,4
1,35 -> 1,4
Это еще, говорят, древние греки придумали.


Дмитрий Белькевич   (2010-11-10 12:24:00) [18]

Как говорил наш физхимик, в своё время, вот из-за таких потом Чернобыли и взрываются. Говорил как раз по поводу округления.


12   (2010-11-10 11:34:00) [19]


> Как округлить число например 1,444445 до 1,45?

округлить до 1,44445
округлить до 1,4445
округлить до 1,445
округлить до 1,45


RWolf   (2010-11-10 10:50:00) [20]


> Кирей   (10.11.10 10:01) [2]

В школе учат округлять как раз до 1.44.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо