我正在使用以下公式尝试获得利率,但有时会出现一分钱短缺
dim float as decimal = Math.ROUND((((Convert.ToDecimal(35000000.00) * Convert.ToDecimal(0.020625)) / 360) * 3), 2, MidpointRounding.AwayFromZero)
这等于6015.62 ...如果我在计算器上进行数学运算,我会得到6015.625,然后我想将其舍入到6015.63 ...我该如何实现呢?
答案 0 :(得分:2)
这不是一个四舍五入的问题。您的公式返回6015.6249999999999999999999999,而不是6015.625。
35000000.00 * 0.020625 = 721875
721875/360 = 2005.208333333333
2005.208333333333 * 3 = 6015.624999999999
如果您将公式更改为
(35000000.00 * 0.020625)/(360/3)
那你得到
35000000.00 * 0.020625 = 721875
360/3 = 120
721875/120 = 6015.625
即使您更改订单,也可以得到想要的东西。
35000000.00 * 0.020625 * 3/360
计算器有时会做一些花哨的事情。但是编译器一次只执行一个步骤,而不会查看以前所做的事情。