我有这样的代码:

lblFranshizShowInvwNoskhehEdit.Text = string.Format("{0:n}",
    (double)(int.Parse(drDarman["FranshizDarsad"].ToString()) *
        Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text)) / 100);

但是{0:n0}字符串格式强制标签的文本不包含小数位,而{0:n}字符串格式强制标签的文本具有2个小数位(默认)。

在我的情况下,我只需要在必要时使用小数位/不四舍五入/如何做到这一点?

最佳答案

您可以这样做:

string.Format("{0}", yourDouble);

必要时将仅包含数字。

如果您想要其他格式化 double 型字符串示例,请查看此link

编辑:根据您的注释,您需要,分隔符,以便执行以下操作:
string.Format("{0:0,0.########}", yourDouble);

只需为要显示的最大小数位数输入尽可能多的#。仅在必要时显示数字,但最多显示最大数字,具体取决于您在格式中包含的#数量。 #表示仅在必要时显示一个数字,因此,如果您提供类似123的数字而没有小数,它将显示为1,234,但是如果您提供1234.456,它将显示为1,234.456。如果超出指定的最大位数,则将四舍五入。

编辑:要修复双零情况,只需将其更改为:
string.Format("{0:#,0.########}", yourDouble);

现在应该可以正常工作了:)

10-06 08:43
查看更多