C#MaskedTextBox十进制货币无法正确显示

时间:2015-08-05 12:44:15

标签: c# currency maskedtextbox

我正在与MaskedTextBox斗争。我的面具看起来像这样: R ######.00输入南非货币。一切都还好。我将金额保存到十进制字段,并使用十进制值和全部正确完成。问题是当我尝试重新显示MaskedTextBox中的十进制字段时。我可以使用小数值完整显示的唯一方法是使用:

edtBayCost.Text = allParkingBayRegistrationData(currentDisplayRecord).bayCost.ToString("000000.00");

然后在框中显示例如。 R 001234.56 我尝试用ToString("000000.00")替换ToString("######.00"),但忽略了小数值,显示为R 123456.00。

我错过了一些重要的事情吗?

1 个答案:

答案 0 :(得分:-1)

尝试使用ToString()方法的货币格式说明符:

edtBayCost.Text = allParkingBayRegistrationData(currentDisplayRecord).bayCost.ToString("C2");

https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#CFormatString

编辑:

您也可以将货币格式说明符与文化代码一起使用。这应该为您尝试使用的货币提供适当的格式:

edtBayCost.Text = allParkingBayRegistrationData(currentDisplayRecord).bayCost.ToString("C3", 
              CultureInfo.CreateSpecificCulture("en-ZA"));

您可以使用此表格作为文化代码的参考:https://msdn.microsoft.com/en-US/library/Ee825488(v=CS.20).aspx