![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Округление дробных чисел [D7, XP]
Кирей © (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.