数字精度设计规范
原则:结算的结果保留最小单位,中间过程数据可以根据过程数据保留很多位。
概念
什么是过程数据:比如商品价格10元,促销活动打折,各种活动叠加计算。 中间的各种叠加计算,是中间过程数据(中间过程数据有些是在java内存运算的过程中 ,通过bigDecimal定义精度,有些是存储在数据库里面)。
例子
余额
账户表的余额存储的类型是int (假设是人民币),单位是分。比如5050分
中间计算过程的结果:账户表的余额存储的类型是Deciaml,单位是分,保留小数位2位或者更多位。
利率
结算结果存储
百分比后保留两位小数:在日常金融业务中,如银行的储蓄存款利率、贷款利率等,通常会将利率精确到百分比后两位小数。例如,银行一年期定期存款利率为 1.75%,住房贷款利率为 4.90%。这种精度既能满足普通客户对利率的基本认知和比较需求,又便于金融机构进行利息计算和业务操作。
百分比后保留三位或更多位小数:在一些复杂的金融衍生品交易、高精度的金融模型计算以及专业的金融分析场景中,利率可能需要更高的精度。例如,在某些外汇交易、债券定价模型或者量化投资策略中,利率可能会精确到百分比后三位甚至更多位小数,如 2.345% 或 0.00345%。这是因为这些业务对利率的微小变化非常敏感,高精度的利率可以更准确地反映市场情况和计算金融产品的价值。
过程数据:保留更多的位数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南