目前我有2双,一个不含税的价格和税率。
价格:9.79(基本11但不含税)税:11%
现在我需要做的是再次获得包含价格的税,所以我这样做:
// Tax exclusive test
double taxRate = 0.11;
double priceWithTax = 11;
double priceWithoutTax = priceWithTax * (1.0 - taxRate);
NSLog(@"priceWithoutTax = %f", priceWithoutTax);
double result = priceWithoutTax * (1 + taxRate);
NSLog(@"Result: %f", result);
但是在执行我的输出时,它是这样的:
priceWithoutTax = 9.790000
Result: 10.866900
预期的输出将再次为 11。如果有人可以提供帮助,那就太好了,我检查了很多关于浮点精度的资源,但我似乎找不到答案。
提前致谢!
更新(Bathsheba 回答后的新代码)
// Tax exclusive test
double taxRate = 0.11;
double priceWithTax = 11;
double priceWithoutTax = priceWithTax * (1.0 - taxRate);
NSLog(@"priceWithoutTax = %f", priceWithoutTax);
double result = priceWithoutTax / (1 - taxRate);
NSLog(@"Result: %f", result);
结果:
priceWithoutTax = 9.790000
Result: 11.000000