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

标签 c# currency maskedtextbox

我正在为 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/

相关文章:

android - 如何发送包含十进制 float (.)的USSD码?

c# - 如何检查用户输入的 MaskedTextBox 是否为空?

excel - 在 VBA Excel 输入框中屏蔽密码

c# - HttpWebRequest.GetResponse() 不断超时

c# - Android - Bitmap.CreateBitmap - 空指针异常

c# - 在没有 Win32 API 调用的情况下将省略号添加到 WinForms 程序中的路径(重新访问)

java - C# 加密到 Java 解密

r - quantmod 货币 (FX) 数据的准确时间戳

c - 如何使我的检查生成器输出准确的内容而不是 C 中的 "Zero"

文本框的 C# 自定义掩码