如何将decimal类型变量result四舍五入或保留3位小数?
如何对Decimal类型变量四舍五入并保留3位小数?
你有一个Decimal类型的变量result,通过以下代码计算得到:
var result = amount * exchangeRate1[fromCurrency] / exchangeRate2[toCurrency];
下面分两种场景给出解决方案:
1. 直接对变量值做四舍五入,保留3位小数
使用Decimal.Round方法,专门针对Decimal类型设计,能避免浮点精度问题:
// 四舍五入保留3位小数,覆盖原result的值 result = Decimal.Round(result, 3);
如果需要指定特殊的舍入规则(比如银行家舍入,即四舍六入五成双),可以添加第三个参数:
// 使用银行家舍入模式 result = Decimal.Round(result, 3, MidpointRounding.ToEven);
2. 仅格式化显示3位小数(不修改原变量)
如果只是需要在输出、展示时显示3位小数,不需要改变原变量的实际值,用字符串格式化即可:
- 带千分位分隔符的格式:
// 转为字符串,自动四舍五入并显示3位小数,带千分位 string displayText = result.ToString("N3"); // 直接输出示例 Console.WriteLine($"计算结果:{result:N3}");
- 不带千分位的格式:
// 仅保留3位小数,不带千分位 string displayText = result.ToString("F3");
内容的提问来源于stack exchange,提问作者JJablonski
相关产品推荐
相关产品推荐

