如何在python减法中摆脱其他浮点数? 输出

def function():
    n=123.456
    x=int(n)
    y=n-int(n)
    print(x,y)

结果:

x= 123
y= 0.45600000000000307 

如何在不使用库函数的情况下准确获得.456n可以是任何浮点数

dada8000 回答:如何在python减法中摆脱其他浮点数? 输出

如果从一开始就知道小数位数为3,则:

y = round(n - int(n),3)

如果您不知道小数位数,则可以计算出小数位数,如下所示:

y = round(n - int(n),str(n)[::-1].find('.'))

正如furas指出的那样,您还可以使用decimal软件包:

from decimal import Decimal

n = Decimal('123.456') 
y = n - int(n)
,

您还可以使用re模块:

import re

def get_decimcal(n: float) -> float:
    return float(re.search(r'\.\d+',str(n)).group(0))

def get_decimcal_2(n: float) -> float:
    return float(re.findall(r'\.\d+',str(n))[0])

def get_int(n: float) -> int:
    return int(n)


print(get_decimcal(123.456))
print(get_decimcal_2(123.456))
print(get_int(123.456))

输出

0.456
0.456
123
,

尝试使用round(y,n)n=3的小数位数。

,

您可以使用%f将浮点值四舍五入为所需的数字。

def function(n):

    x = int(n)
    y = n-int(n)
    print(x,"%.2f" % y)

function(123.456)

输出:

123

0.456
本文链接:https://www.f2er.com/3169088.html

大家都在问