如何将double格式化为字符串并在必要时仅显示十进制数字?
我的代码如下:
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);
它将在必要时仅包含数字。
如果您想要格式化双精度的其他示例,请查看此链接 。
编辑:根据你的评论你想要的分隔符,你可以这样做:
string.Format("{0:0,0.########}", yourDouble);
只需要为要显示的最大小数位数添加#
。 它只会在必要时显示数字,但最多可以根据格式中包含的#
显示。 #
表示只在必要时显示一个数字,所以如果你给出一个没有小数的123
这样的数字,它将显示为1,234
但如果你给它1234.456
,它将显示为1,234.456
。 如果超出指定的最大数字,它们将被舍入。
编辑:要修复双零情景,只需将其更改为:
string.Format("{0:#,0.########}", yourDouble);
那现在应该完美了:)
这是我的 :
string.Format("{0:n2}", double);