【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
在财务计算中,经常会用到分数,有的分数可以用有限位小数表示,有的分数就是无限位数的,如果设置一定的精度改成小数表示,在不断的计算中(比如先用这个精度的计算,结果再和别的数据做了各种运算),最终结果和直接用分数总会有少许的差别。我目前项目里,遇到了这样的问题。
在早期,金额设置为2位小数,天数设置为6位小数,单价设置为两位小数,汇率设置4位小数,因为业务量不大,经营效益也还好,所以偶尔差个几元几分的用户也觉得没问题。
现在效益不行了,财务监管严格,差1分都不行,但是软件系统也用了5年以上了,用户提出用分数对中间数据进行保存,最终结果才做精度和四舍五入的设置。
可是,貌似现在java语言和关系数据库里,都没有分数的合适的表达形式,请高手指点。谢谢了!
2个字段,分子,分母
对应java对象
或者可以直接用apache的Math项目(http://commons.apache.org/proper/commons-math/),里面有对分数的运算和表示。
分数的API在这里:http://commons.apache.org/proper/commons-math/userguide/fraction.html