【发布时间】:2015-11-17 09:07:40
【问题描述】:
如果与最接近的整数的绝对差小于或等于0.01,我想四舍五入到最接近的整数,
我的代码在测试中:
import unittest
def round_price(price):
if abs(price - round(price)) <= 0.01:
price = int(round(price))
return price
class TestRounding(unittest.TestCase):
def test_rounding(self):
self.assertEqual(round_price(15.98), 15.98)
self.assertEqual(round_price(15.99), 16)
self.assertEqual(round_price(16.00), 16)
self.assertEqual(round_price(16.01), 16)
self.assertEqual(round_price(16.02), 16.02)
if __name__ == '__main__':
unittest.main()
测试的时候还是报错,
self.assertEqual(round_price(16.01), 16) AssertionError: 16.01 != 16
【问题讨论】:
-
检查你的 if 子句。也许你想检查原始价格和四舍五入价格之间的绝对差。
-
您可以通过说出测试时遇到的 what 错误来改进您的问题。会发生什么,您期望会发生什么?
-
如果
price是 2.993,你对if abs(round(price)) <= 0.01有什么期望? -
我用测试和测试结果更新了我的问题,请检查