我在C#中的对象上有一个小数。我希望能够在值为-1.61769时将其显示为xxxx.xxxx,基本上我想将最后两位数向上舍入并确保它在小数位后只有4位小数。我不确定这是一个数学运算(即Math.Round)还是验证操作(即string.Format)或两者兼而有之??
希望有人能帮忙......
答案 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)
答案 3 :(得分:-1)
你试过Math.Abs()
吗?
根据这个MSDN-Page,这是不可能的。
因为它会显示不同的价值。
Math.Abs(-1.61769).ToString("####.####");