C# 显示 2 个小数位
Posted
技术标签:
【中文标题】C# 显示 2 个小数位【英文标题】:C# Display 2 decimal places 【发布时间】:2013-08-01 16:34:49 【问题描述】:我不知道如何在这段代码中显示 2 个小数。下面是当我从 combobox1 和 combobox2 中选择选项时的代码显示,然后我将任何值键入 textbox2,因此它将存储新值。而且,如果我从 combobox1 和 combobox2 中选择相同的选项,它将自动采用 1/textBox2.Text。但我只想显示 2 位小数。任何人都可以帮助解决此代码吗?
谢谢
int index1 = comboBox1.SelectedIndex;
int index2 = comboBox2.SelectedIndex;
arr[index1, index2] = double.Parse(textBox2.Text);
arr[index2, index1] = (1 / double.Parse(textBox2.Text));
MessageBox.Show("Your Current Rate Have Been Updated");
【问题讨论】:
你也可以使用 Decimal 来提供更好的舍入。 如果这是钱,你应该使用小数而不是像 F*** 建议的那样使用双精度数,因为它使用以 10 为底,并且可以准确地表示货币值。 【参考方案1】:这应该会有所帮助:
int index1 = comboBox1.SelectedIndex;
int index2 = comboBox2.SelectedIndex;
arr[index1, index2] = String.Format("0:N2", double.Parse(textBox2.Text));
arr[index2, index1] = String.Format("0:N2", 1 / double.Parse(textBox2.Text)));
MessageBox.Show("Your Current Rate Have Been Updated");
在此处查看Standard Numeric Format Strings 的完整列表。
【讨论】:
@Chris 你是对的。我已经在编辑它了。我忘记了那个的无花果部分。 我收到一条错误消息:无法将类型'string'隐式转换为'double' 那我们都误会了。如果arr[,]
正在存储Double
数据,那么您的解决方案是将String.Format()
应用于您尝试显示arr[,]
中保存的值的位置。像这样:String.Format("0:N2, arr[0,0]);
。换句话说,您不能只存储 2 位小数。您将其全部存储,然后仅显示 2 个小数。【参考方案2】:
我认为这将为您提供带 2 位小数的结果:
arr[index1, index2] = Convert.ToDouble(string.Format("0:0.00", double.Parse(textBox2.Text)));
arr[index2, index1] = Convert.ToDouble(string.Format("0:0.00", (1 / double.Parse(textBox2.Text))));
这是针对您的特定代码的,但就像其他人指出的那样,如果它的钱用于更好的舍入会更好的小数,以及使用 Math 类。
【讨论】:
有效!我想我错过了 Convert.ToDouble 这一行。非常感谢:)以上是关于C# 显示 2 个小数位的主要内容,如果未能解决你的问题,请参考以下文章