Правильный / рекомендуемый способ форматирования валюты в ASP.NET - PullRequest
0 голосов
/ 13 февраля 2020

Я столкнулся с проблемой пользовательского интерфейса из-за форматирования валюты.

Два разных свойства ...

Public Property ShippingRate() As Decimal
     Get
         Return _shippingRate
     End Get
     Set(ByVal value As Decimal)
          _shippingRate = value
     End Set
End Property

Public Property TotalShipping() As Decimal
     Get
          Return _totalShipping
     End Get
     Set(ByVal value As Decimal)
          _totalShipping = Math.Round(value, 2)
     End Set
End Property

Оба эти свойства вызываются в различных частях кода , но они оба вызываются таким образом ...

Me.txtBoxOutput.Text = myObject.ShippingRate.ToString("c")
Me.txtBoxOutput2.Text = myObject2.TotalShipping.ToString("c")

Когда я отлаживаю, если получаю десятичное число, равное 10.345 для обоих этих свойств (TotalShipping может в конечном итоге быть ShippingRate +/- другие логи c), я вижу другой вывод в текстовых полях. Свойство, которое округляется, будет $10.34, а другое свойство, которое не округлено, будет $10.35.

С момента округления до 2-й десятичной запятой я предположил, что она округляет эту цифру до 5, что неявно делает ToString("c").

Итак, мой вопрос ... что правильный способ отображения валюты. Я провел небольшое исследование по ставкам доставки (UPS и Fedex) и как они часто будут использовать 5 в тысячном десятичном знаке.

...