C#号格式化

时间:2013-11-15 04:04:57

标签: c#

之前我问了一个类似的问题,但现在我有更好的方式来问它。我正在研究一个计算器。我需要将我的分区格式化为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"));
    }

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

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

3 个答案:

答案 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。