Pobierz jednocześnie część całkowitą i dziesiętną liczby za pomocą math.modf w Pythonie

Biznes

Funkcji modf() z math, standardowego modułu funkcji matematycznych w Pythonie, można użyć do jednoczesnego uzyskania części całkowitej i dziesiętnej liczby.

Zobacz poniższy artykuł na temat funkcji divmod(), która jednocześnie oblicza iloraz i resztę z dzielenia.

Uzyskaj części całkowite i dziesiętne bez modułu matematycznego

Zastosowanie funkcji int() do typu zmiennoprzecinkowego float daje w wyniku wartość całkowitą z obciętym przecinkiem dziesiętnym. Można to wykorzystać do uzyskania części całkowitej i części dziesiętnej.

a = 1.5

i = int(a)
f = a - int(a)

print(i)
print(f)
# 1
# 0.5

print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>

Uzyskaj jednocześnie część całkowitą i dziesiętną liczby za pomocą funkcji math.modf()

Funkcji modf() w module matematycznym można użyć do jednoczesnego uzyskania części całkowitej i dziesiętnej liczby.

math.modf() zwraca następującą tuple Zwróć uwagę na kolejność, ponieważ część dziesiętna jest wyświetlana jako pierwsza.

  • (decimal, integer)
import math

print(math.modf(1.5))
print(type(math.modf(1.5)))
# (0.5, 1.0)
# <class 'tuple'>

Każdą z nich można rozpakować i przypisać do osobnej zmiennej w następujący sposób Zarówno część całkowita, jak i dziesiętna są typu float.

f, i = math.modf(1.5)

print(i)
print(f)
# 1.0
# 0.5

print(type(i))
print(type(f))
# <class 'float'>
# <class 'float'>

Znak będzie taki sam jak znak oryginalnej wartości zarówno dla części całkowitej, jak i dziesiętnej.

f, i = math.modf(-1.5)

print(i)
print(f)
# -1.0
# -0.5

Ma zastosowanie do typów int. W tym przypadku zarówno część całkowita, jak i dziesiętna są typami float.

f, i = math.modf(100)

print(i)
print(f)
# 100.0
# 0.0

Do sprawdzenia, czy typ float jest liczbą całkowitą (tzn. czy część dziesiętna wynosi 0), bez uzyskiwania części dziesiętnej, można użyć następującej metody. Zobacz poniższy artykuł.

  • float.is_integer()