如何确保小数始终显示为xxxx.xxxx正负?

时间:2012-03-29 11:00:32

标签: c#

我在C#中的对象上有一个小数。我希望能够在值为-1.61769时将其显示为xxxx.xxxx,基本上我想将最后两位数向上舍入并确保它在小数位后只有4位小数。我不确定这是一个数学运算(即Math.Round)还是验证操作(即string.Format)或两者兼而有之??

希望有人能帮忙......

4 个答案:

答案 0 :(得分:2)

试试这个:

string result = d.ToString("0.0000");

您可能还想指定一种文化:

CultureInfo cultureInfo = CultureInfo.InvariantCulture;
string result = d.ToString("0.0000", cultureInfo);

结果:

-1.6177

查看在线工作:ideone

答案 1 :(得分:2)

这取决于您是否希望最多四位小数,或 exacty 四位小数。

如果对值进行四舍五入,则最多得到四位小数:

value = Math.Round(value, 4);

例如,值1.61799将四舍五入为1.6180并显示为1.618

如果格式化值,则会得到正好四位小数:

string formatted = value.ToString("0.0000");

答案 2 :(得分:1)

如果你想要一个字符串,你必须检查string.Format。

检查链接c# double format

如果您要保留数字的值,则应使用Math.round

答案 3 :(得分:-1)

你试过Math.Abs()吗? 根据这个MSDN-Page,这是不可能的。 因为它会显示不同的价值。

Math.Abs(-1.61769).ToString("####.####");