Λήψη ακέραιου και δεκαδικού μέρους ενός αριθμού ταυτόχρονα με το math.modf στην Python

Επιχείρηση

Η συνάρτηση modf() της math, της τυπικής ενότητας για μαθηματικές συναρτήσεις στην Python, μπορεί να χρησιμοποιηθεί για την ταυτόχρονη λήψη του ακέραιου και του δεκαδικού μέρους ενός αριθμού.

Δείτε το ακόλουθο άρθρο για την divmod(), η οποία λαμβάνει ταυτόχρονα το πηλίκο και το υπόλοιπο μιας διαίρεσης.

Λήψη ακέραιων και δεκαδικών μερών χωρίς μαθηματική ενότητα

Η εφαρμογή της int() σε έναν τύπο float κινητής υποδιαστολής δίνει μια ακέραια τιμή με το δεκαδικό σημείο κομμένο. Αυτό μπορεί να χρησιμοποιηθεί για να ληφθεί το ακέραιο μέρος και το δεκαδικό μέρος.

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 μπορεί να χρησιμοποιηθεί για την ταυτόχρονη λήψη του ακέραιου και του δεκαδικού μέρους ενός αριθμού.

Η math.modf() επιστρέφει την ακόλουθη πλειάδα Προσέξτε τη σειρά, καθώς το δεκαδικό μέρος έρχεται πρώτο.

  • (decimal, integer)
import math

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

Το καθένα μπορεί να αποσυσκευαστεί και να εκχωρηθεί σε ξεχωριστή μεταβλητή ως εξής Τόσο το ακέραιο όσο και το δεκαδικό μέρος είναι τύποι 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'>

Το πρόσημο θα είναι το ίδιο με το πρόσημο της αρχικής τιμής τόσο για το ακέραιο όσο και για το δεκαδικό μέρος.

f, i = math.modf(-1.5)

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

Ισχύει για τύπους int. Στην περίπτωση αυτή, τόσο το ακέραιο όσο και το δεκαδικό μέρος είναι τύποι float.

f, i = math.modf(100)

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

Η ακόλουθη μέθοδος μπορεί να χρησιμοποιηθεί για να ελέγξετε αν ένας τύπος float είναι ακέραιος (δηλαδή αν το δεκαδικό μέρος είναι 0) χωρίς να λάβετε το δεκαδικό μέρος. Ανατρέξτε στο ακόλουθο άρθρο.

  • float.is_integer()
Copied title and URL