自动格式化数字字符串
本文关键字:数字字符 字符串 数字 格式化 | 更新日期: 2023-09-27 18:08:40
使用c# windows窗体应用程序,我需要自动格式化我的textBox值,这意味着我想使小数点前的最后一位数字为零,目前我正在处理自动格式化我的文本后到小数点使用
double value;
if (double.TryParse(textBox1.Text, out value))
{
textBox1.Text = String.Format("{0:0.##}", value);
}
这是完美的工作,我的问题是,当我输入一个示例值"1257.00"它应该被格式化为1250.00
。困在这里,做了一个完整的研究,但我找不到解决方案,尽快帮助我。
我已经发布了这个快速而肮脏的解决方案(控制台版本,但核心逻辑将在WinForms应用程序中工作相同),并发布在这个Fiddle:
https://dotnetfiddle.net/yvK9Ef要点:您需要手动将"。"前的最后一位数字减少为零。为此,我要做的是使用字符串Substring函数取除最后一位数字外的所有内容,并附加一个零。我同意这并不优雅,但它是有效的——你也可以尝试算术方法的除法和建模,直到你得到所有的东西,但最后一个数字。
string number = "1257.00";
double value = 0.00;
if (double.TryParse(number, out value))
{
string roundedNumber = number.Substring(0, (number.IndexOf('.') > 0 ? number.IndexOf('.') : number.Length)-1) + "0";
if (double.TryParse(roundedNumber, out value))
{
Console.WriteLine(String.Format("{0:0.##}", value));
}
else
{
Console.WriteLine("Error!");
}
}
else
{
Console.WriteLine("Error!");
}