Цілі і дробові числа в python, мови програмування

Для початку повернемося до шкільної програми і згадаємо, що таке ціле число. Це такі значення, як 34, 7986, 57. На відміну від них, речові числа мають залишки, дробові числа: 234.45 або 74.78. Ми звикли завжди перед залишком ставити кому, відокремлюючи його від цілої частини числа, проте в Python числа поділяються трохи по-іншому, як і практично всі мови програмування розуміють дробові числа - через точку. Саме з цієї причини їх називають з плаваючою точкою. Цілий числа позначаються як INT. а з плаваючою точкою - FLOAT.

Для кращого розуміння наведемо невеликий приклад: print (7 * 4.9). тут ми зробили множення цілого (int) числа 7 на (float) з плаваючою точкою 4.9 і результаті отримали значення 34.300000000000004. Чому ж вийшло саме так? Зворотний бік: коли пітон отримує від користувача подібну команду, то розбирає її в наступному вигляді: print (7.0 * 4.9) цим перекодував заданий нами int у float і перемноживши як числа з плаваючою крапкою.

Спробуємо по-іншому. Задамо іншу команду, бажаючи отримати ціле число: print (7 * int (4.9)) тут ми число float уклали в функцію int () яка перевела в ціле число. В результаті ми отримали значення 28. Оппа, чому ж так вийшло? Важливо усвідомити той факт, що Python цифри не округлює. А все, що він зробив, це просто відкинув від 4.9 дев'ятку і справив просте множення 7 * 4, що і дало нам результат, рівний 28.

Уявіть собі ситуацію, що ви є власником інтернет-магазину з продажу книг. Покупець набуває у вас 7 видань по 4.9 $ за кожне і в вашому коді використовується приклад підрахунку, який ми описали вище. Через якийсь проміжок часу ви розоритеся. віддаючи 7 книг за 28 $?

Приблизний підрахунок прибутку з продажу книг

Як же зробити так, щоб наш результат був найбільш наближений до вірного? Для цього існує функція round (). яка як раз і округлює числа.

Наприклад: print (round (7 * 4.9)) в результаті отримаємо очікуваний результат: 34. У даному випадку ми дали завдання помножити 7 * 4.9 і отримали в результаті 34.300000000000004. після чого функція round () округлила до 34. Такий метод підрахунку найбільш підходить до рішень типових задач, де не потрібна точність, а найважливіше результат. Тепер нам стало ясно, що за 7 книг ми повинні були запросити як мінімум 34 $. Вже краще. Але такий приклад в розрахунках, де велику роль відіграє точність, не підійде.

Так само уважно подивіться на різні результати при: print (round (7 * 4.9)) і print (7 * round (4.9)). У першому варіанті ми округляємо отриманий результат від множення, а в другому безпосередньо число 4.9. Саме тому і отримуємо абсолютно різні цифри. Цей момент дуже важливо вловити!

В даному уроці переді мною ставилося завдання максимально зрозуміло пояснити різницю між цілими і дробовими значеннями. А також те, що ми можемо з легкістю працювати з ними, переводити ціле число в дробове float (34) і навпаки int (34.44).

Читачам також подобається:

Схожі статті