如何使用巨蟒将浮点数舍入到固定的十进制部分

共3个回答, 标签: python

我有一些价格, 如 5.35, 10.91, 15.55, 我圆两个小数使用

Price = "{:.2f}".format(Price)

但我怎么能让他们是圆的基础上 0.50 和 0.50, 并有

5.50、10.90、15.50

谢谢

第1个答案

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="">
第2个答案

对于您提供的示例, 此函数应执行以下操作:

def fixed_round(number):
    decimal = number - int(number)
    < (abs(0.9="" -="" decimal)):="" return="" int(number)="" +="" 0.50="" else:="" return="" int(number)="" +="" 0.90="">

如果要使其舍入为整数, 则在小数接近整数的情况下, 则需要根据该;)

第3个答案
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

相关问题

通过随机抽样其他列数据创建新列 如何使用熊猫获得包括每一个组合的计数 如何有效地展开矩阵的值与小块?