Задача от Сбербанка: как из 24,375 сделать 24,37

Автор RuslanVa, 1 марта 2017, 14:22

0 Пользователи и 1 гость просматривают эту тему.

RuslanVa

Приветствую всех!

Задача простая, как решить - в голову не приходит.
Пользуемся эквайрингом от Сбера)) - это константа)))
При расчетах Сбер забирает свои 2,5%
И, например, если платеж составлял 25р, то нам судя по математике должно достаться 25-(25*(0,025)=0,625)= 24,375
Но по факту на счет падает 24,37  - третий знак- 0,005 сотых просто отсекают.
С математикой Сбера бодаться не собираюсь - мне нужно свой учет под их причуды подогнать.
Как отсечь в расчетах этот третий знак?

Пробовал выставлять точность как на экране и оставлять два знака после запятой, но calc считает по правивильному) и отображает 24,38 - ошибка накапливается еще больше, чем при трёх знаках(((

rami

Проверьте такой способ округления:=ROUNDDOWN(IF(B5="нет"," ",B5*0.975),2)

economist

#2
Если задача просто отсечь 3-ю цифру после запятой, то проще всего чистая арифметика:

24,375 * 100 = 2437,5 и ЦЕЛОЕ(2437,5)/100=24,37  

То есть формула такая =INT(B5*100)/100


Кстати, ещё есть так называемое "банковское" округление - к ближайшему чётному:
1,5 - это 2 но 2,5 - это... тоже 2! Такое округление очень полезно - оно уменьшает
суммарную ошибку округления в сотни раз.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

TimSha

Цитата: RuslanVa от  1 марта 2017, 12:22С математикой Сбера бодаться не собираюсь - мне нужно свой учет под их причуды подогнать.
Как вариант (LibO - 5.3.0.3):
=ЕСЛИ(B4="нет";"";ОКРУГЛВНИЗ(B4*0,975;2))
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)

RuslanVa

Цитата: rami от  1 марта 2017, 14:33
Проверьте такой способ округления:=ROUNDDOWN(IF(B5="нет"," ",B5*0.975),2)
В предложенном виде не прокатило(((
А вот так, очень даже работает)
=ROUNDDOWN(C4;2)
И вот так:
=IF(B4="нет";"";ROUNDDOWN(B4*0,975;2))


Цитата: economist от  1 марта 2017, 16:36
Если задача просто отсечь 3-ю цифру после запятой, то проще всего чистая арифметика:

24,375 * 100 = 2437,5 и ЦЕЛОЕ(2437,5)/100=24,37 

То есть формула такая =INT(B5*100)/100


Кстати, ещё есть так называемое "банковское" округление - к ближайшему чётному:
1,5 - это 2 но 2,5 - это... тоже 2! Такое округление очень полезно - оно уменьшает
суммарную ошибку округления в сотни раз.


Это подошло сразу)))


Цитата: TimSha от  1 марта 2017, 17:04
Цитата: RuslanVa от  1 марта 2017, 12:22С математикой Сбера бодаться не собираюсь - мне нужно свой учет под их причуды подогнать.
Как вариант (LibO - 5.3.0.3):
=ЕСЛИ(B4="нет";"";ОКРУГЛВНИЗ(B4*0,975;2))

Собственно, если заменить формулы, которые написаны на на русском языке, то работает!

LibOV Версия: 5.2.3.5

Всем спасибо!
Хорошего дня)