我的代码如下:
lblFranshizShowInvwNoskhehEdit.Text = string.Format("{0:n}",
(double)(int.Parse(drDarman["FranshizDarsad"].ToString()) *
Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text)) / 100);
但是{0:n0}
字符串格式强制标签的文本不具有十进制数字,{0:n}
字符串格式强制标签的文本具有2个十进制数字(默认)。
在我的场景中,我只想在必要时使用十进制数字/不进行舍入/我该怎么做?
答案 0 :(得分:23)
你可以这样做:
string.Format("{0}", yourDouble);
必要时仅包含数字。
如果您想要格式化双精度的其他示例,请查看此link。
编辑:根据您的评论,您需要,
分隔符,以便您可以这样做:
string.Format("{0:0,0.########}", yourDouble);
只需为您要显示的最大小数位数添加#
。它只会在必要时显示数字,但会根据您在格式中包含的#
数量来显示最大数字。 #
表示只在必要时显示数字,因此如果您提供的数字不是123
而没有小数,则会显示为1,234
,但如果您给它1234.456
,则将显示为1,234.456
。如果超出指定的最大数字,它们将被舍入。
编辑:要修复双零情景,只需将其更改为:
string.Format("{0:#,0.########}", yourDouble);
现在应该完美地工作了:)
答案 1 :(得分:0)
这是我的:
string.Format("{0:n2}", double);