可能重复:
c# - How do I round a decimal value to 2 decimal places (for output on a page)
我正在尝试将小数点显示为四位小数。数据库将我的数字四舍五入到小数点后4位,但它返回的数字为尾随0(由于字段的小数精度),因此类似于9.45670000。然后,当我这样做时:
string.Format("{0:#,#.####}", decimalValue);
我在页面上得到的输出是9.4567,这就是我想要的。
但是,如果从DB返回的数字是9.45600000,那么格式化后的输出是9.456
但我需要显示的是9.4560
如何格式化我的小数,以便小数位数始终为4?
更新:此外,如果我想动态确定小数位数,是否可以使用变量(而不是.0000)?
答案 0 :(得分:13)
string.Format("{0:N4}",decimalValue);
Standard Numeric Format Strings
要动态设置精度,您可以执行以下操作:
double value = 9.4560000;
int precision = 4;
string format = String.Format("{{0:N{0}}}",precision);
string valuestring = String.Format(format, value);
答案 1 :(得分:1)
string.Format({0:#,#0.0000}, decimalValue);
答案 2 :(得分:1)
使用String.Format -
decimal d =123.47
string specifier="{0:0,0.0000}"; // You need to get specifier dynamically here..
String.Format(specifier, d); // "123.4700"
答案 3 :(得分:1)
试试这个:
string.Format("{0:#,###.0000}", 9.45600000);
如果没有要放置的数字,则以格式添加零会强制输出零。
要添加以编程方式驱动的零数的零,您可以执行以下操作:
int x = 5;
string fmt = "{0:#,###." + new string('0', x) + "}";
string.Format(fmt, 9.456000000);