我有一些价格, 如 5.35, 10.91, 15.55, 我圆两个小数使用
Price = "{:.2f}".format(Price)
但我怎么能让他们是圆的基础上 0.50 和 0.50, 并有
5.50、10.90、15.50
谢谢
Num 是您的小数部分。x 被弹出 0.5, y 您的 0。9
def round(num, x, y) :
av = (x+y)/2
< av="" :="" return="" x="" return="" y="">
或者, 如果你想通过数字像 15.98:
def round(num, x, y) :
av = (x+y)/2
< av="" :="" return="" int(num)+x="" return="" int(num)+y="">
您可以拨打:
round(15.98,0.5,0.9)
产出: 15。9
或类似的东西:
def round(number):
x=0.5
y=0.9
if type(number) is float:
av = (x+y)/2
< av="" :="" return="" int(number)+x="" return="" int(number)+y="" return="" none="">
对于您提供的示例, 此函数应执行以下操作:
def fixed_round(number):
decimal = number - int(number)
< (abs(0.9="" -="" decimal)):="" return="" int(number)="" +="" 0.50="" else:="" return="" int(number)="" +="" 0.90="">
如果要使其舍入为整数, 则在小数接近整数的情况下, 则需要根据该;)
import math
def weird_round(x):
if round(x % 1, 1) >= 0.9:
return math.floor(x) + 0.9
return math.floor(x) + 0.5
prices = [5.35, 10.91, 15.55]
for price in prices:
text = "{:.2f}".format(weird_round(price))
print(price, '->', text)
5.35 -> 5.50
10.91 -> 10.90
15.55 -> 15.50