Можно ли использовать system.currency. Он говорит, что системный.пакет недоступен из-за его уровня защиты. что является альтернативой валюты.
Можно ли использовать "System.Currency" в .NET?
Ответ 1
Вы должны использовать Decimal тип данных..
Ключевое слово decimal указывает 128-битный тип данных. По сравнению с типами с плавающей запятой десятичный тип имеет более высокую точность и меньший диапазон, что делает его подходящим для финансовых и денежных расчетов.
Ответ 2
Используйте десятичный знак. Все функции, которые предоставляет Currency, являются статическими методами для Decimal, FromOACurrency и ToOACurrency.
Ответ 3
Это может быть возможно через отражение, но причины, по которым он существует для статических методов FromOACurrency()
и ToOACurrency()
на System.Decimal
, который предназначен для преобразования из/в тип Ole Automation Currency
, который использует Visual Basic 6.
Ответ 4
Вы не можете использовать Decimal for Currency. Позже вы столкнетесь с большими проблемами, когда разделите. Скажем, если вы разделили 1 доллар на 3, что составляет 1/3 = 0,33 (округлено), но 3 x 0,33 = 0,99!= 1. Это может быть небольшим, но когда вы делаете это в бухгалтерии и складываете свои листы, это будет огромная фигура. Кроме того, почему поведение по умолчанию округления вверх/вниз в .Net(не уверенное в других языках программирования) относится к следующему четному значению, также называемому округлением банкиров, для минимизации ошибок в учете по сравнению с нашим обычным "человеческим" способом округления.
Прочтите эту страницу для более четкого объяснения и специального класса для обработки денег. Код проекта: тип денег для среды CLR
Также о Rounding