Asp.Net Core:如何计算税费并添加至总金额?
计算含3%税费的总金额解决方案
你尝试的代码无法正常运行,核心问题是把double类型的Tax(0.03)强制转换成Int16了——0.03转成短整型会直接被截断为0,相当于根本没加税费,而且直接用整型运算还会丢失精度。
下面是两种正确的实现方式:
方式1:直接截断小数部分(取整数位)
int Totalprice = 400000; double Tax = .03; int totalpriceWithTax = (int)(Totalprice * (1 + Tax));
计算逻辑:先算出1 + Tax得到1.03,乘以总价后得到412000.0,再转成int直接取整。
方式2:四舍五入到最近整数(更贴合实际税费场景)
int Totalprice = 400000; double Tax = .03; int totalpriceWithTax = (int)Math.Round(Totalprice * (1 + Tax));
计算逻辑:用Math.Round对浮点结果做四舍五入处理,再转成int,避免截断带来的误差(比如总价为101时,税费3.03,四舍五入后总金额为104)。
额外建议(针对货币计算)
如果涉及高精度的货币计算,建议用decimal类型替代double,避免浮点精度丢失问题:
int Totalprice = 400000; decimal Tax = 0.03m; int totalpriceWithTax = (int)Math.Round(Totalprice * (1 + Tax));
内容的提问来源于stack exchange,提问作者RoyalDesigner
相关产品推荐
相关产品推荐

