我正在为 MaskedTextBox 苦苦挣扎。我的面具看起来像这样:
R ######.00
输入南非货币。一切还好。我将金额保存到一个小数字段,并且使用十进制值和所有正确完成。问题是当我尝试重新显示 MaskedTextBox 中的小数字段时。我可以让它以完整的十进制值显示的唯一方法是使用:
edtBayCost.Text = allParkingBayRegistrationData(currentDisplayRecord).bayCost.ToString("000000.00");
然后在框中显示例如。 R 001234.56
我尝试用 ToString("######.00")
替换 ToString("000000.00")
但随后十进制值被忽略并且显示为R 123456.00.
我是不是漏掉了什么重要的东西?
最佳答案
尝试为 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
关于C# MaskedTextBox 十进制货币显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31832921/