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 个小数位的主要内容,如果未能解决你的问题,请参考以下文章

double 在 C# 中显示 2 个非零小数? [复制]

c#如何把这句保留2位小数

C#中怎么对double型取两位小数。

C#检查一个小数是不是有超过3个小数位?

C#中的decimal怎么保留两位小数

如何格式化小数以始终显示 2 个小数位?