Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.02.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
Кирей   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.004 c
15-1288081624
Polkin
2010-10-26 12:27
2011.02.06
А кто нить делал сканворды?


6-1233683745
Xandr
2009-02-03 20:55
2011.02.06
Почта


15-1288271870
Правильный$Вася
2010-10-28 17:17
2011.02.06
DVD DL болванки - кто какие пользует и с какими приводами?


2-1289725951
lewka
2010-11-14 12:12
2011.02.06
Запись данных в TStringgrid


2-1290091924
NewZ
2010-11-18 17:52
2011.02.06
Компонент TScrollBox.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский