Атрымаць цэлыя і дзесятковыя часткі ліку адначасова з math.modf у Python

Бізнэс

Функцыя modf() матэматыкі, стандартны модуль для матэматычных функцый у Python, можа выкарыстоўвацца для атрымання цэлай і дзесятковай частак ліку адначасова.

Глядзіце наступны артыкул для divmod(), які адначасова атрымлівае частку і рэшту ад дзялення.

Атрымлівайце цэлыя і дзесятковыя часткі без матэматычнага модуля

Прымяненне int() да тыпу з плаваючай кропкай дае цэлае значэнне з абрэзанай дзесятковай кропкай. Гэта можа быць выкарыстана для атрымання цэлай і дзесятковай часткі.

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'>

Атрымаць цэлыя і дзесятковыя часткі ліку адначасова з math.modf()

Функцыю modf() у матэматычным модулі можна выкарыстоўваць для адначасовага атрымання цэлай і дзесятковай частак ліку.

math.modf() вяртае наступны картэж. Звярніце ўвагу на парадак, бо дзесятковая частка ідзе першай.

  • (decimal, integer)
import math

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

Кожную з іх можна распакаваць і прысвоіць асобнай зменнай наступным чынам.

f, i = math.modf(1.5)

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

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

Знак будзе такім жа, як знак зыходнага значэння як для цэлай, так і для дзесятковай частак.

f, i = math.modf(-1.5)

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

Дастасавальна да тыпаў int. У гэтым выпадку як цэлая, так і дзесятковая часткі з’яўляюцца тыпамі з плаваючай колькасцю.

f, i = math.modf(100)

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

Наступны метад можна выкарыстоўваць, каб праверыць, ці з’яўляецца тып з плаваючай часткай цэлым лікам (гэта значыць, дзесятковая частка роўная 0), не атрымліваючы дзесятковай часткі. Глядзіце наступны артыкул.

  • float.is_integer()
Copied title and URL