Кто-нибудь знает тип денег в .NET? - PullRequest
19 голосов
/ 08 ноября 2008

Кто-нибудь знает об уже реализованном типе денег для .NET Framework, который поддерживает i18n (валюты, форматирование и т. Д.)? Я искал хорошо реализованный тип и не могу его найти.

Ответы [ 3 ]

17 голосов
/ 08 ноября 2008

Проверьте эту статью Тип денег для CLR

Удобные, высокопроизводительные деньги структура для CLR, которая обрабатывает арифметические операции, типы валют, форматирование и тщательное распространение и округление без потерь.

9 голосов
/ 08 ноября 2008

Я думаю, что вы хотите использовать десятичный тип данных и использовать соответствующую перегрузку для ToString () .

CultureInfo current  = CultureInfo.CurrentCulture;
decimal myMoney = 99.99m;

//formats as money in current culture, like $99.99
string formattedMoney = myMoney.ToString("C", current); 
1 голос
/ 08 ноября 2008

Я бы использовал целое / длинное и использовал бы очень низкое значение, такое как центы (или пенсы) - тогда не было бы десятичной дроби для работы, и все вычисления можно было бы округлить до ближайшего цента.

или взгляните на книгу Мартина Фаулера "Шаблоны архитектуры корпоративных приложений". В этой книге он рассказал о том, как реализовать денежный класс. http://www.amazon.com/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420

...