Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

25 Апрель 2019, 23:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Задача от Сбербанка: как из 24,375 сделать 24,37  (Прочитано 1271 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RuslanVa
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: г. Шахунья, Нижегородская обл.
Сообщений: 59


#иногдапутьэтоцель


WWW
« Стартовое сообщение: 1 Март 2017, 14:22 »

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

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

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

* Сбербанк Эквайринг.ods (25.5 Кб - загружено 9 раз.)
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 696


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 1 Март 2017, 14:33 »

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

economist
Форумчанин
***
Offline Offline

Сообщений: 967


« Ответ #2: 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! Такое округление очень полезно - оно уменьшает
суммарную ошибку округления в сотни раз.
« Последнее редактирование: 1 Март 2017, 16:42 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
TimSha
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 72


« Ответ #3: 1 Март 2017, 17:04 »

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

"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. Подмигивающий
RuslanVa
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: г. Шахунья, Нижегородская обл.
Сообщений: 59


#иногдапутьэтоцель


WWW
« Ответ #4: 2 Март 2017, 11:24 »

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

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

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

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


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


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


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

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

LibOV Версия: 5.2.3.5

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


Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!