c# - 如何格式化带有千位分隔符和小数点分隔符的 Windows 窗体文本框以进行数字输入

我是 Windows 窗体的新手并尝试做一些事情。我正在使用 C#。

我使用的是 Windows 窗体,我在窗体上放置了八个文本框,并且都是带有十进制值的数字。

我喜欢实现以下结果。我的小数分隔符是逗号,千位分隔符是点。 我见过像##.###,## 之类的东西,但不记得了....我怎样才能实现以下方法?

所以我的想法是,当我输入 1234 并将焦点从文本框中移开时,它应该格式化,当我再次回到文本框时,千位分隔符不应该只格式化小数分隔符。

我想我必须使用一些事件,比如 LostFocus。

输入                结果

1234                1.234,00

12.34                   12,34

12,34                   12,34

1234567     1.234.567,00

12,34                   12,34

12345,67     12.345,67

最佳答案

在文本框中的 LostFocus 事件中,使用:

textBox1.Text = string.Format("{0:#,##0.00}", double.Parse(textBox1.Text));

在应用上述逻辑之前,请先确保文本是 double /整数,否则会引发异常。这个解决方案相当苛刻、强硬。

如果您希望格式采用特定文化而不是您当前计算机的文化,那么

textBox1.Text = string.Format(System.Globalization.CultureInfo.GetCultureInfo("id-ID"), "{0:#,##0.00}", double.Parse(textBox1.Text));

上面的例子是印尼货币格式,其中千位分隔符使用点(“.”)而不是逗号(“,”)。

https://stackoverflow.com/questions/15473216/

相关文章:

python - 在 Python Pandas DataFrame 或 Jupyter Noteb

mysql - MySQL中的字符串格式化

python - Python中的十进制对齐格式

c# - 解释令人困惑的条件字符串格式

io - 使用英特尔 Fortran 编译器避免列表导向输出中的换行符

excel - 条件格式 : making cells colorful

c# - Visual Studio/ReSharper 代码格式化 - C#

excel - Vba检查单元格中是否部分粗体

python - 是否可以使用 weasyprint 对页脚进行精美的格式化?

powershell - 将整数 x.xxxxx 格式化为 xx.xxx