怎样做免费商城网站,我是做网站的 怎么才能提高业绩,115做网站,常州建设网站平台前言
相信对于四舍五入的舍入法#xff0c;大家都耳熟能详#xff0c;但对于银行家舍入法#xff0c;可能就会比较少接触了#xff01;
可是在金融界#xff0c;银行家舍入法可是大名鼎鼎的主角之一#xff0c;主要应用于金融领域和涉及货币计算的场合。
那么#xf…
前言
相信对于四舍五入的舍入法大家都耳熟能详但对于银行家舍入法可能就会比较少接触了
可是在金融界银行家舍入法可是大名鼎鼎的主角之一主要应用于金融领域和涉及货币计算的场合。
那么这个银行家舍入法是什么呢它是怎么来的有什么规则……
别急请听我一一道来。
银行家舍入法的来源
银行的盈利渠道主要是利息差它从储户手里收集资金然后放贷出去期间产生的利息差就是银行所获得的利润。
如果采用平常四舍五入的规则假设采用每 10 笔存款利息计算作为模型如下
四舍0.000、0.001、0.002、0.003、0.004。这些舍的都是银行赚的钱
五入0.005、0.006、0.007、0.008、0.009。这些入的都是银行亏的钱
分别为0.005、0.004、.003、0.002、0.001。
对于银行来说它的盈利应该是
0.000 0.001 0.002 0.003 0.004 - 0.005 - 0.004 - 0.003 - 0.002 - 0.001 -0.005从结果中可以看到每 10 笔的利息银行可能就会损失 0.005 元千万别小看这个数字这对于银行来说就是一笔非常大的损失。
美国银行家对金钱是最敏感的他们首先发现了这个问题所以他们提出这个算法用于修正采用上面四舍五入规则而产生的误差。
银行家舍入法的规则
银行家舍入法的规则简单地说就是 四舍六入五成双
如何理解呢举个例子假设要保留两位小数
如果第三位小数大于 5那么进一位比如 11.556 11.56如果第三位小数小于 5那么舍去比如 11.554 11.55如果第三位小数等于 5并且有第四位小数那么进一位比如 11.5551 11.56如果第三位小数等于 5没有第四位小数那么有两种情况 如果第二位小数是偶数那么舍去比如 11.545 11.54如果第二位小数是奇数那么进一位比如 11.555 11.56
如何在程序中实现银行家舍入法 Java 内置了银行家舍入法的方法可以直接使用 RoundingMode.HALF_EVEN 来实现代码如下 import java.math.BigDecimal;
import java.math.RoundingMode;public class Main {public static void main(String[] args) {// 假设要将 2.34567 保留两位小数double num 2.34567;BigDecimal bd new BigDecimal(num);BigDecimal rounded bd.setScale(2, RoundingMode.HALF_EVEN);System.out.println(使用银行家舍入法保留两位小数 rounded);}
}C# 也内置了银行家舍入法的方法可以使用 Math.Round 方法结合 MidpointRounding.ToEven 参数来实现代码如下 using System;class Program
{static void Main(){// 定义一个 double 类型的数值double amount 10.555;// 使用 Math.Round 方法进行银行家舍入法double roundedAmount Math.Round(amount, 2, MidpointRounding.ToEven);// 输出结果Console.WriteLine($原始数值: {amount});Console.WriteLine($银行家舍入后的结果: {roundedAmount});}
}总结
这些银行家们真是精明得很啊一点亏都不肯吃的 _
往期精彩
浅论未来 IT 和财务结合的趋势 我是老杨一个奋斗在一线的资深研发老鸟让我们一起聊聊技术聊聊程序人生共同学习共同进步