使用ac#windows表单应用程序,我需要自动格式化我的textBox值,这意味着我想在小数点之前将最后一位数设为零,目前我正在处理自动格式到我的文本之后使用我的小数点
double value;
if (double.TryParse(textBox1.Text, out value))
{
textBox1.Text = String.Format("{0:0.##}", value);
}
这是完美的,我的问题是当我输入示例值“1257.00”时,它应格式化为1250.00
。坚持到这里并做了充分的研究,但我找不到解决方案,尽快帮助我。
答案 0 :(得分:0)
我已经发布了这个快速而又脏的解决方案(控制台版本,但核心逻辑在WinForms应用程序中的工作方式也相同)并发布在这个小提琴中:
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!");
}