Як працює функція round у python
@Павло, це питання про інше: числа можуть бути представлені точно, але округляються в різних напрямках. У цьому числі не можуть бути представлені точно, неточність впливає на заокруглення.
0
Чи знаєте когось, хто може відповісти? Поділіться посиланням на це питання поштою, через Twitter або Facebook.
Пов'язані
Подібні
Підписатися на стрічку
Для підписки на стрічку скопіюйте та вставте це посилання у вашу програму для читання RSS.
Site design/logo © 2024 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2024.11.28.19441
Math.round()
Ця особливість є добре створеною і роботою, пов'язаною з багатьма пристроями і розробниками версій. It's been available across browsers since July 2015 .
Зведення
Метод Math.round() повертає число, заокруглене до найближчого цілого.
Синтаксис
Параметри
Опис
Якщо дробова частина числа більша або дорівнює 0,5, аргумент буде округлений до найближчого більшого цілого. Якщо дробова частина числа менша за 0,5, аргумент буде округлений до найближчого меншого цілого.
Оскільки метод round() є статичним методом об'єкта Math, ви завжди повинні використовувати його як Math.round() , а не намагатися викликати метод на створеному екземплярі об'єкта Math (оскільки об'єкт Math не є конструктором).
Приклади
Приклад: використання методу Math.round()
// Поверне значення 20 x = Math.round (20.49); // Поверне значення 21 x = Math.round (20.5); // Поверне значення -20 x = Math.round (-20.5); // Поверне значення -21 x = Math.round (-20.51); // Поверне значення 1 (!) // Зверніть увагу на помилку округлення через неточність арифметики з плаваючою комою // Порівняйте цей результат з результатом Math.round(1.005, -2) з наступного прикладу x = Math.round(1.005 * 100)/100;
Приклад: коригування заокруглення десяткових дробів
// Замикання (function () < /** * Коригування заокруглення десяткових дробів. * * @param type Тип коригування. * @param value Число.* @param exp Показник ступеня (десятковий логарифм основи коригування). * @returns Кориговане значення. */ function decimalAdjust(type, value, exp) < // Якщо ступінь не визначено, або дорівнює нулю. if (typeof exp === "undefined" || +exp === 0) < return Math[type](value); >value = +value; exp = + Exp; // Якщо значення перестав бути числом, чи ступінь перестав бути цілим числом. if (isNaN(value) || !(typeof exp === "number" && exp % 1 === 0)) < return NaN; >// Зсув розрядів value = value.toString().split("e"); value = Math[type](+(value[0] + "e" + (value[1] ? +value[1] - exp : -exp))); // Зворотний зсув value = value.toString().split("e"); return +(value[0] + "e" + (value[1] ? +value[1] + exp : exp)); > // Десятичне округлення до найближчого if (! Math.round10) < Math.round10 = function (value, exp) < return decimalAdjust("round", value, exp); >; > // Десятичне округлення вниз if (! Math.floor10) < Math.floor10 = function (value, exp) < return decimalAdjust("floor", value, exp); >; > // Десятичне округлення догори if (! Math.ceil10) < Math.ceil10 = function (value, exp) < return decimalAdjust("ceil", value, exp); >; > >)(); // Округлення до найближчого Math.round10 (55.55, -1); // 55.6 Math.round10(55.549, -1); // 55.5 Math.round10(55, 1); // 60 Math.round10(54.9, 1); // 50 Math.round10(-55.55, -1); //-55.5 Math.round10(-55.551, -1); //-55.6 Math.round10(-55, 1); //-50 Math.round10(-55.1, 1); //-60 Math.round10(1.005, -2); // 1.01 -- порівняйте цей результат із результатом Math.round(1.005*100)/100 вище // Округлення вниз Math.floor10(55.59, -1); // 55.5 Math.floor10(59, 1); // 50 Math.floor10(-55.51, -1); //-55.6 Math.floor10(-51, 1); // -60 // Округлення вгору Math.ceil10 (55.51, -1); // 55.6 Math.ceil10(51, 1); // 60 Math.ceil10(-55.59, -1); //-55.5 Math.ceil10(-59, 1); //-50
Специфікації
Сумісність із браузерами
BCD tables only load in the browser
Дивіться також
- Math.abs()
- Math.ceil()
- Math.floor()
- Math.sign() Експериментальна можливість
- Math.trunc() Експериментальна можливість
13.11. Java – Метод Math.round()
Метод Math.round() – повертає ціле число, long або int, найближче до речового числа, double або float, аргументу. Інакше кажучи – округлює дріб до цілого числа.
Синтаксис
Метод має такі варіанти округлення до цілого числа:
long round(double d) int round(float f)
Параметри
Детальна інформація про параметри:
- d – double чи float примітивний тип даних.
- f – тип даних float.
Значення, що повертається
- Java Math.round() повертає ціле число (long або int), найближче до речового числа, double або float, аргументу.
приклад
public class Test< public static void main(String args[])< double d1 = 1.49; double d2 = 1.50; double d3 = 1.75; double d4 = -1.49; double d5 = -1.50; double d6 = -1.75; float f1 = 10; float f2 = 9f; float f3 = -10; float f4 = -9f; System.out.println("d1 = " + Math.round(d1)); System.out.println("d2 = " + Math.round(d2)); System.out.println("d3 = " + Math.round(d3)); System.out.println("d4 = " + Math.round(d4)); System.out.println("d5 = " + Math.round(d5)); System.out.println("d6 = " + Math.round(d6)); System.out.println("-----------"); System.out.println("f1 = " + Math.round(f1)); System.out.println("f2 = " + Math.round(f2)); System.out.println("f3 = " + Math.round(f3)); System.out.println("f4 dos">d1 = 1 d2 = 2 d3 = 2 d4 = -1 d5 = -1 d6 = -2 ----------- f1 = 10 f2 = 9 f3 = -10 f4 = -9
Зміст
- 1. Java - Самовчитель для початківців
- 2. Java – Огляд мови
- 3. Java – Встановлення та налаштування
- 4. Java – Синтаксис
- 5. Java – Класи та об'єкти
- 6. Java – Конструктори
- 7. Java – Типи даних та літерали
- 8. Java - Типи змінних
- 9. Java – Модифікатори
- 10. Java – Оператори
- 11. Java – Цикли та оператори циклу
- 11.1. Java – Цикл while
- 11.2. Java – Цикл for
- 11.3. Java – Поліпшений цикл for
- 11.4. Java – Цикл do..while
- 11.5. Java – Оператор break
- 11.6. Java – Оператор continue
- 12.Java – Оператори прийняття рішень
- 12.1. Java – Оператор if
- 12.2. Java – Оператор if..else
- 12.3. Java – Вкладений оператор if
- 12.4. Java – Оператор switch..case
- 12.5. Java – Умовний оператор (?:)
- 13. Java – Числа
- 13.1. Java – Методи byteValue(), shortValue(), intValue(), longValue(), floatValue(), doubleValue()
- 13.2. Java – Метод compareTo()
- 13.3. Java – Метод equals()
- 13.4. Java – Метод valueOf()
- 13.5. Java – Метод toString()
- 13.6. Java – Метод parseInt()
- 13.7. Java – Метод Math.abs()
- 13.8. Java – Метод Math.ceil()
- 13.9. Java – Метод Math.floor()
- 13.10. Java - Метод Math.rint()
- 13.11. Java – Метод Math.round()
- 13.12. Java – Метод Math.min()
- 13.13. Java – Метод Math.max()
- 13.14. Java – Метод Math.exp()
- 13.15. Java – Метод Math.log()
- 13.16. Java – Метод Math.pow()
- 13.17. Java – Метод Math.sqrt()
- 13.18. Java – Метод Math.sin()
- 13.19. Java – Метод Math.cos()
- 13.20. Java – Метод Math.tan()
- 13.21. Java – Метод Math.asin()
- 13.22. Java – Метод Math.acos()
- 13.23. Java – Метод Math.atan()
- 13.24. Java – Метод Math.atan2()
- 13.25. Java – Метод Math.toDegrees()
- 13.26. Java – Метод Math.toRadians()
- 13.27. Java – Метод Math.random()
- 14. Java – Символи
- 14.1. Java – Метод Character.isLetter()
- 14.2. Java – Метод Character.isDigit()
- 14.3. Java – Метод Character.isWhitespace()
- 14.4. Java – Метод Character.isUpperCase()
- 14.5. Java – Метод Character.isLowerCase()
- 14.6. Java – Метод Character.toUpperCase()
- 14.7. Java – Метод Character.toLowerCase()
- 14.8. Java – Метод Character.toString()
- 15. Java – Рядки
- 15.1. Java – Метод charAt()
- 15.2. Java – Метод compareTo()
- 15.3. Java – Метод compareToIgnoreCase()
- 15.4. Java – Метод concat()
- 15.5. Java – Метод contentEquals()
- 15.6. Java – Метод copyValueOf()
- 15.7. Java – Метод endsWith()
- 15.8. Java – Метод equals()
- 15.9. Java - Метод equalsIgnoreCase()
- 15.10. Java – Метод getBytes()
- 15.11. Java – Метод getChars()
- 15.12. Java – Метод hashCode()
- 15.13. Java - Метод indexOf()
- 15.14.Java – Метод intern()
- 15.15. Java - Метод lastIndexOf()
- 15.16. Java – Метод length()
- 15.17. Java – Метод matches()
- 15.18. Java – Метод regionMatches()
- 15.19. Java – Метод replace()
- 15.20. Java – Метод replaceAll()
- 15.21. Java – Метод replaceFirst()
- 15.22. Java – Метод split()
- 15.23. Java – Метод startsWith()
- 15.24. Java – Метод subSequence()
- 15.25. Java – Метод substring()
- 15.26. Java – Метод toCharArray()
- 15.27. Java – Метод toLowerCase()
- 15.28. Java – Метод toString()
- 15.29. Java – Метод toUpperCase()
- 15.30. Java – Метод trim()
- 15.31. Java – Метод valueOf()
- 15.32. Java – Класи StringBuilder та StringBuffer
- 15.32.1. Java – Метод append()
- 15.32.2. Java – Метод reverse()
- 15.32.3. Java – Метод delete()
- 15.32.4. Java – Метод insert()
- 15.32.5. Java – Метод replace()
- 16. Java – Масиви
- 17. Java – Дата та час
- 18. Java – Регулярні вирази
- 19. Java - Методи
- 20. Java – Потоки вводу/виводу, файли та каталоги
- 20.1. Java – Клас ByteArrayInputStream
- 20.2. Java – Клас DataInputStream
- 20.3. Java – Клас ByteArrayOutputStream
- 20.4. Java – Клас DataOutputStream
- 20.5. Java – Клас File
- 20.6. Java – Клас FileReader
- 20.7. Java – Клас FileWriter
- 21. Java – Винятки
- 21.1. Java – Вбудовані винятки
- 22. Java – Вкладені та внутрішні класи
- 23. Java – Спадкування
- 24. Java – Перевизначення
- 25. Java – Поліморфізм
- 26. Java – Абстракція
- 27. Java - Інкапсуляція
- 28. Java – Інтерфейси
- 29. Java – Пакети
- 30. Java – Структури даних
- 30.1. Java – Інтерфейс Enumeration
- 30.2. Java – Клас BitSet
- 30.3. Java – Клас Vector
- 30.4. Java – Клас Stack
- 30.5. Java – Клас Dictionary
- 30.6. Java – Клас Hashtable
- 30.7. Java – Клас Properties
- 31. Java – Колекції
- 31.1. Java – Інтерфейс Collection
- 31.2. Java – Інтерфейс List
- 31.3. Java – Інтерфейс Set
- 31.4. Java – Інтерфейс SortedSet
- 31.5. Java – Інтерфейс Map
- 31.6. Java – Інтерфейс Map.Entry
- 31.7. Java – Інтерфейс SortedMap
- 31.8. Java – Клас LinkedList
- 31.9.Java – Клас ArrayList
- 31.10. Java – Клас HashSet
- 31.11. Java – Клас LinkedHashSet
- 31.12. Java – Клас TreeSet
- 31.13. Java – Клас HashMap
- 31.14. Java – Клас TreeMap
- 31.15. Java – Клас WeakHashMap
- 31.16. Java – Клас LinkedHashMap
- 31.17. Java – Клас IdentityHashMap
- 31.18. Java – Алгоритми Collection
- 31.19. Java – Iterator та ListIterator
- 31.20. Java – Comparator
- 32. Java – Дженерики
- 33. Java – Серіалізація
- 34. Java – Мережа
- 34.1. Java – Обробка URL
- 35. Java – Надсилання Email
- 36. Java - Багатопоточність
- 36.1. Java – Синхронізація потоків
- 36.2. Java – Міжпоточний зв'язок
- 36.3. Java – Взаємне блокування потоків
- 36.4. Java – Керування потоками
- 37. Java – Основи роботи з аплетами
- 38. Java – Javadoc