как округлить значение так чтобы не была погрешности в сумме, надо написать ROUND а потом не помню
округление
03.06.2008 12:10:39
|
|
|
|
03.06.2008 14:49:21
спасиба, но что вы называите "мастер функций" может напишите англиский вариант :))
|
|
|
|
03.06.2008 15:46:37
Есть такой знак - fx /вставка функции-, при нажатии активизируется мастер функций.
|
|
|
|
03.06.2008 23:18:53
меню Вставка - Функция...
|
|
|
|
04.06.2008 02:13:22
---
Округление в Excel вполне предсказуемое, т.к. оно выполняеться по математическим правилам. Но, не всем известно, что функция Round() в VBA округляет не по математическим правилам, а по банковским. В частности: Round(1.5)=2, ничего необычного; Но Round(2.5)=2, а не 3, как обычно ожидается. Упрощенно, для одного десятичного знака правило банковского округления такое: половинки (0.5), прибавленные к нечетным числам округляются до целых с избытком, а к четным - с недостатком. Смысл - в уменьшении систематической ошибки округления при суммировании большого количества чисел. Это удобно банкам, но знают ли об этом их клиенты? ' Проверка VBA- округления Sub Нюансы_округления() MsgBox "Round(1.5)=" & Round(1.5) & vbCr _ & "Round(2.5)=" & Round(2.5), _ vbExclamation, "Crazy VBA round" End Sub Интересно, что многие публикации ошибаются относительно математического метода округления в VBA, и даже коммерческие программы порой используют в VBA функцию Round(число,2), принося тем самым кому-то убытки, а кому-то неожиданную прибыль. Более точно определение банковского округления можно прочесть здесь: Реализация (на мой взгляд, не очень оптимальная) разных видов округления, на английском здесь: --- ZVI |
|
|
|
17.02.2011 16:51:07
Последний вариант ZVI_Round() неправильно отрабатывает округление числа 0,5.
Предыдущая версия работает корректно! |
|
|
|
18.02.2011 15:19:25
To k61
... помню приходил в мамину контору и мне разрешали покрутить Феликс ! ... |
|
|
|
19.02.2011 05:49:02
{quote}{login=}{date=18.02.2011 12:32}{thema=Округление}{post}...
Почему MS не привела правила округления к общему знаменателю, на рабочем листе ЦЕЛОЕ() и ОКРУГЛ() - работают по ПРАВИЛЬНО, а VBA.Int и VBA.Round - извращенцы ?{/post}{/quote} Сначала был Visual Basic (VB), а затем уже VBA. В VB изначально функция Round() выполняла банковское округление, VBA просто наследовал эту функцию, что с точки зрения VB логично. Но возникло противоречие между округлением в VBA и Excel, видимо, посчитали, что так как это разные объектные модели с разными библиотеками, то так логичнее. Что касается Int(), то к ней нет претензий. Проблемы возникают из-за способа представления Double чисел: |
|
|
|
19.02.2011 14:13:12
ZVI, спасибо за пояснения и Вашу UDF.
|
|
|
|
04.11.2011 21:53:43
=ОКРУГЛ((2,8-2,1)/0,8;0)*25
чуть короче =ОКРУГЛ((2,8-2,1)/0,8;)*25 |
|
|
|
06.11.2011 21:13:04
А если округлить нужно до 0,5
|
|
|
|
06.11.2011 23:07:07
=ОКРУГЛТ(_число_;0,5)
|
|
|
|
Читают тему