Python’daki matematiksel işlevler için standart modül olan matematiğin modf() işlevi, bir sayının tamsayı ve ondalık kısımlarını aynı anda elde etmek için kullanılabilir.
Bir bölümün bölümünü ve kalanını aynı anda elde eden divmod() için aşağıdaki makaleye bakın.
Matematik modülü olmadan tamsayı ve ondalık bölümleri alın
Bir kayan noktalı kayan nokta tipine int() uygulamak, ondalık noktası kesilen bir tamsayı değeri verir. Bu, tamsayı kısmı ve ondalık kısmı elde etmek için kullanılabilir.
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() ile bir sayının tamsayı ve ondalık kısımlarını aynı anda alın
Matematik modülündeki modf() işlevi, bir sayının tamsayı ve ondalık kısımlarını aynı anda elde etmek için kullanılabilir.
math.modf() aşağıdaki tanımlama grubunu döndürür, çünkü ondalık kısım önce gelir.
(decimal, integer)
import math
print(math.modf(1.5))
print(type(math.modf(1.5)))
# (0.5, 1.0)
# <class 'tuple'>
Her biri aşağıdaki gibi paketten çıkarılabilir ve ayrı bir değişkene atanabilir Hem tamsayı hem de ondalık kısımlar kayan tiplerdir.
f, i = math.modf(1.5)
print(i)
print(f)
# 1.0
# 0.5
print(type(i))
print(type(f))
# <class 'float'>
# <class 'float'>
İşaret, hem tamsayı hem de ondalık kısımlar için orijinal değerin işaretiyle aynı olacaktır.
f, i = math.modf(-1.5)
print(i)
print(f)
# -1.0
# -0.5
int türleri için geçerlidir. Bu durumda hem tamsayı hem de ondalık kısımlar kayan tiplerdir.
f, i = math.modf(100)
print(i)
print(f)
# 100.0
# 0.0
Aşağıdaki yöntem, bir kayan nokta türünün bir tamsayı olup olmadığını (yani, ondalık kısmın 0 olup olmadığını) ondalık kısmı almadan kontrol etmek için kullanılabilir. Aşağıdaki makaleye bakın.
float.is_integer()