0

我以前问过类似的问题,但现在我有更好的方法来问它。我正在做一个计算器。我需要将我的除法格式化为小数点后 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"));
    }

我不确定我的错误是否与我编写此内容的方式有关,或者是否在我的程序中的其他地方,但您的回答可能会帮助我缩小范围。

我的理解是这两种格式“应该”完成同样的事情。再说一次,我是新人。

4

3 回答 3

1

我认为它是零而不是#。此代码片段为我显示 8 位小数。

void Main()
{
decimal d = 351.23456M;
Console.Write(d.ToString("0.00000000"));
}
于 2013-11-15T04:08:53.393 回答
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。

于 2013-11-15T04:25:07.037 回答
0

我想你想要的是这个

 Console.Write(d.ToString("F8"));

这将在点之后输出 8 位数字。

更多信息:http: //msdn.microsoft.com/en-us/library/dwhawy9k (v=vs.110).aspx#FFormatString

于 2013-11-15T04:23:31.400 回答