R класс для поддержки валюты как целое число - PullRequest
0 голосов
/ 03 октября 2019

С плавающей точкой :( для хранения значений валют, таких как 3,33 или 3,10.

В этой теме рассказывается о создании поля 'центов'. ​​Таким образом, доллар_флоата 123,45 становится центом_45 123 центов.

Почему бы не использовать Double или Float для представления валюты?

Решение, которое работает практически на любом языке, состоит в том, чтобы вместо него использовать целые числа и считать центы. Например, 1025 будет стоить $ 10,25Некоторые языки также имеют встроенные типы для работы с деньгами. Среди прочих, Java имеет класс BigDecimal, а C# имеет тип decimal.

Есть лиспособ R хранить валюту как целое число?

(и было бы неплохо, если бы целочисленное поле автоматически печаталось в хорошем формате, например, 2222.22)

1 Ответ

0 голосов
/ 03 октября 2019

Вот что я использую для печати чисел с плавающей точкой:

paste("$", round(number_i_want_as_currency, 2))

Я использую это в самом конце вычислений перед печатью, чтобы минимизировать ошибки округления. Единственное, чего не хватает в вашем запросе формата - это запятые каждые три цифры.

Если вы хотите сохранить значения, я бы порекомендовал пропустить вставку ("$" ...) и просто делать .. .

currency_storage <- round(number_i_want_as_currency, 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...