Nano Hash - криптовалюты, майнинг, программирование

Округление четвертого десятичного знака валюты Швейцарии и Аргентины

При округлении денежных сумм с использованием алгоритма для швейцарских франков учитываются вторые и третьи десятичные цифры. Если меньше 26, они округляются до 0; иначе, если меньше 76, округляется до 5; иначе все значение округляется в большую сторону.

20.125  =>  20.10
20.143  =>  20.15
20.179  =>  20.20

Что произойдет, если округляемая сумма имеет большую точность до десятичной дроби? Все десятичные цифры после третьей просто игнорируются (значение усекается) или значение сначала округляется каким-либо другим способом до трех десятичных цифр? В качестве примера рассмотрим усечение по сравнению с подходом «Math.round ()» (менее 0,5 округления в меньшую сторону, в противном случае округление в большую сторону):

Truncation                      |  "Math.round"
=================================================================
Start        3 d.p.    Rounded  |  Start        3 d.p.    Rounded
=================================================================
20.1259  ->  20.125  =>  20.10  |  20.1259  ->  20.126  =>  20.15
20.1759  ->  20.175  =>  20.15  |  20.1759  ->  20.176  =>  20.20

Как показано выше, эти крайние случаи сильно различаются в конечном результате.

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

Спасибо!


Ответы:


1

Если меньше 26, они округляются до 0; иначе, если меньше 76, округляется до 5; иначе все значение округляется в большую сторону.

Исходя из этого, я бы предположил, что метод «усечения» будет подходящим, поскольку 0,0259XXXXX меньше 0,026.

27.02.2011
  • Да, но я перефразировал описание для краткости. Существует множество вариантов, включая 0 ‹x‹ 26 = ›округление в меньшую сторону, 25‹ x ‹76 =› округление до 0,5, 75 ‹x =› округление в большую сторону. Это приводит к описанной мной двусмысленности. Википедия добавляет путаницы: en.wikipedia.org/wiki/Swedish_rounding - и моя первоначальная реализация был основан на следующем, хотя я считаю, что его описание сейчас неверно: xencraft.com/resources /multi-currency.html 28.02.2011
  • Но, конечно же, в любом случае для определения вы по-прежнему используете фактическое значение, а не значение, которое уже было округлено другим методом. Вы хотите округлить только один раз. Я что-то упускаю? 01.03.2011
  • Вероятно, нет, но вы не хотите ошибаться. Беспокоит то, что я не могу найти в Интернете исчерпывающей справочной информации или получить здесь четкий ответ, поэтому на этот вопрос явно не так-то легко ответить. Усечение кажется наиболее правдоподобным ответом, но также и довольно произвольным; опять же, весь алгоритм кажется довольно произвольным, так что, возможно, я просто позволяю ввести в уравнение какое-то расплывчатое понятие здравого смысла, и, похоже, здравому смыслу нет места в финансах :-D 01.03.2011
  • Я работал в сфере финансового программного обеспечения последние 13 лет, и я действительно могу подтвердить, что здравого смысла нет ;-) 02.03.2011
  • Ну, 0,0259999 ... меньше 0,026, если у вас есть конечное число девяток. 05.03.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..