Можно ли использовать "System.Currency" в .NET?

Можно ли использовать system.currency. Он говорит, что системный.пакет недоступен из-за его уровня защиты. что является альтернативой валюты.

Ответ 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