Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.06;
Скачать: CL | DM;

Вниз

Округление дробных чисел   Найти похожие ветки 

 
Кирей   (2010-11-10 09:43) [0]

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


 
sniknik ©   (2010-11-10 09:51) [1]

> 1,444445 до 1,45?
ни математическим ни бухгалтерским округлением здесь не пахнет... пахнет желанием странного.


 
Кирей   (2010-11-10 10:01) [2]

А чему ж меня тогда в школе учили?


 
sniknik ©   (2010-11-10 10:03) [3]

глупостям всяким наверное, серьезно, вот покажи этот пример своему математику, и спроси почему не научил правильно.


 
Jeer ©   (2010-11-10 10:30) [4]


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


Если очень хочется странного, то
x := 1.444445;
s := Format("%.2f",[x+0.005])

Будет визуально округлять 1.4 <= x < 1.45


 
RWolf ©   (2010-11-10 10:50) [5]


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

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


 
12 ©   (2010-11-10 11:34) [6]


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

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


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

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


 
Nickolay   (2010-11-11 08:02) [8]


> 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
Это еще, говорят, древние греки придумали.


 
sniknik ©   (2010-11-11 08:07) [9]

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


 
Nickolay   (2010-11-11 08:16) [10]

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

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

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

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


 
12 ©   (2010-11-11 09:08) [11]

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

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

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

то +1 надо.


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

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

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


 
Anatoly Podgoretsky ©   (2010-11-11 09:18) [13]

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

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


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

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


 
Nickolay   (2010-11-11 09:41) [15]

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


 
Плохиш ©   (2010-11-11 11:54) [16]


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

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


 
Dennis I. Komarov ©   (2010-11-11 14:09) [17]


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

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


 
Anatoly Podgoretsky ©   (2010-11-11 14:23) [18]

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

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


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

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

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


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

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


 
Dennis I. Komarov ©   (2010-11-12 17:42) [21]


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

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


 
Jeer ©   (2010-11-12 17:45) [22]


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


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


 
Anatoly Podgoretsky ©   (2010-11-12 18:18) [23]

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

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


 
Inovet ©   (2010-11-15 11:18) [24]

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

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2011.02.06;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.01 c
15-1287865739
Юрий
2010-10-24 00:28
2011.02.06
С днем рождения ! 24 октября 2010 воскресенье


2-1289811718
на4инающий
2010-11-15 12:01
2011.02.06
парсинг имени файла


2-1290085181
asdqwe
2010-11-18 15:59
2011.02.06
компонененты OverbyteIcs THttpCli


15-1288166553
DVM
2010-10-27 12:02
2011.02.06
Опять перепись 2010


2-1290080637
noob_one
2010-11-18 14:43
2011.02.06
Как добавить свою строчку в меню, которое появляется по