之前我问了一个类似的问题,但现在我有更好的方式来问它。我正在研究一个计算器。我需要将我的分区格式化为8位小数。这是我正在使用的代码,并尝试制作自定义格式。由于某种原因,它忽略了我的格式。我在写这部分代码的方式上做错了吗?
private void btnDivide_Click(object sender, System.EventArgs e)
{
calc.Divide(displayValue);
newValue = true;
decimalEntered = false;
displayValue = calc.CurrentValue;
txtDisplay.Text = displayValue.ToString(string.Format("{####.########}"));
}
我也试过这个样本没有运气。
private void btnDivide_Click(object sender, System.EventArgs e)
{
calc.Divide(displayValue);
newValue = true;
decimalEntered = false;
displayValue = calc.CurrentValue;
txtDisplay.Text = displayValue.ToString(string.Format("f8"));
}
我不确定我的错误是否与我写的方式有关,或者是否在我的程序中的其他位置,但您的回答可能会帮助我缩小范围。
我理解这两种格式“应该”完成同样的事情。再说一遍,我是新人。
答案 0 :(得分:1)
我认为它是零而不是#。此代码段为我显示8位小数。
void Main()
{
decimal d = 351.23456M;
Console.Write(d.ToString("0.00000000"));
}
答案 1 :(得分:0)
我认为你想要的是这个
Console.Write(d.ToString("F8"));
这将在该点之后输出8位数。
此处有更多信息:http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#FFormatString
答案 2 :(得分:0)
private void btnDivide_Click(object sender, System.EventArgs e)
{
calc.Divide(displayValue);
newValue = true;
decimalEntered = false;
displayValue = calc.CurrentValue;
txtDisplay.Text = displayValue.ToString("#,###.########");
}
这种改变应该做你想要的。这将格式化数字以包括逗号和十进制最多8(如果需要)。
如果要强制使用8位小数,可以使用F8或将#s更改为0。