def function():
n=123.456
x=int(n)
y=n-int(n)
print(x,y)
结果:
x= 123
y= 0.45600000000000307
如何在不使用库函数的情况下准确获得.456
,
n
可以是任何浮点数
def function():
n=123.456
x=int(n)
y=n-int(n)
print(x,y)
结果:
x= 123
y= 0.45600000000000307
如何在不使用库函数的情况下准确获得.456
,
n
可以是任何浮点数
如果从一开始就知道小数位数为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