四舍五入到最接近的整数
Rounding to the nearest Integer
如果与最接近整数的绝对差小于或等于 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)
断言错误:16.01 != 16
您需要比较价格与四舍五入后价格的差值:
def round_price(price):
if abs(price - round(price)) <= 0.01:
price = int(round(price))
return price
def round_price(price):
if abs(price - round(price)) <= 0.01000001:
price = round(price)
return price
如果与最接近整数的绝对差小于或等于 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) 断言错误:16.01 != 16
您需要比较价格与四舍五入后价格的差值:
def round_price(price):
if abs(price - round(price)) <= 0.01:
price = int(round(price))
return price
def round_price(price):
if abs(price - round(price)) <= 0.01000001:
price = round(price)
return price