我有一个收银机系统,其中有一个价格和税收字段。输入的价格不含税(按照美国的惯例)。
对于一些欧洲人来说,他们喜欢把税包括在价格中。示例:
含税30.00 % 10%
为了存储不含税的价格,价格应为: 27.2727273
问题是,在我的系统中,我只允许价格的两个小数点。
最好的方法是增加价格字段允许的小数点数量,并为英国客户计算不含税的价格并存储它吗?
我需要多少个小数点?
发布于 2012-07-20 19:45:39
如果我们在谈论货币,你需要更多的两个小数点的精度。我会说你需要至少4个小数点的精度才能实现这个简单的事实。1/100美分和1/1000美分给足够的交易可能是一笔很大的钱。
是最好的方法,以增加价格字段允许的小数点数量,并计算英国客户的无税价格并存储它?
你的问题的解决方案是存储3个数字。
的税额
含Tax的
这将允许您存储任何项目的相同信息,对于任何客户,重要的是他们如何输入和/或显示价格。
遗憾的是,这篇评论有点长了,而且由于没有代码,我不能提供任何代码。
发布于 2012-07-20 19:08:55
我认为你最好的办法就是根本不存税。
存储具有适用起始/终止日期的税率,并通过将该税率应用于价格来导出任何需要的税额。当税率发生变化时,这也会让你的喜欢变得容易得多(就像不久前英国的增值税税率一样)。
对于实际价格,您应该能够逃脱两位小数,因为舍入将应用于每笔交易,因为它们发生在“真实世界”-即没有人支付it 6.66-三分之二,它将舍入到it 6.67。
如果你交易的不是离散的实物(石油,外币,股票),那么是的,你需要有能力记录最低货币面额的分数。
https://stackoverflow.com/questions/11577961
复制相似问题