Перейти к содержимому

Как округлить число в массиве python

  • автор:

Округление числа python

В выходной файл надо вывести вещественное число с округлением до n-ого знака после запятой. Как это сделать?

Отслеживать
Oleg Chaika
задан 22 сен 2019 в 6:45
Oleg Chaika Oleg Chaika
452 2 2 серебряных знака 15 15 бронзовых знаков

В питоне уже несколько лет как нет типа long. Во float используйте точку, а не запятую. Код вставляйте текстом, а не картинкой. Не используйте min в качестве имени переменной — это встроенная функция.

Commented 22 сен 2019 в 6:49
Спасибо! Про лонг вообще неожиданно. В случае больших чисел в таком случае просто использовать int?
Commented 22 сен 2019 в 6:50
Да. Что вы понимаете под большими числами?
Commented 22 сен 2019 в 6:51
Ну 10 в сотой степени например
Commented 22 сен 2019 в 6:52
Да, это тоже int. Проверка — print(type(10**100)) Хотя sys.maxsize покажет вам намного меньше 🙂
Commented 22 сен 2019 в 6:56

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

round(number[, ndigits]) — округляет число number до ndigits знаков после запятой (по умолчанию, до нуля знаков, то есть, до ближайшего целого)

In [37]: n = 33/7 In [38]: n Out[38]: 4.714285714285714 In [39]: round(n, 1) Out[39]: 4.7 In [40]: round(n, 4) Out[40]: 4.7143 

Отслеживать
ответ дан 22 сен 2019 в 7:46
456 1 1 золотой знак 3 3 серебряных знака 17 17 бронзовых знаков

  • python
  • python-3.x
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.6.14.10983

Помощь в составлении функции округления в массиве

хотелось бы узнать возможный способ округления элементов массива, сумма элементов которого в конечном счете будет равна длине массива.

def minimass(): i,f,g=0,0,sum(rel) while i 

Отслеживать
задан 24 сен 2022 в 20:55
35 3 3 бронзовых знака
бррр, а можно поподробнее, а то из описания не очень ясно в чем суть задачи, что за округления
Commented 24 сен 2022 в 21:01

Хотелось бы функцию, чтобы число максимальное близкое к округлению принимало соответствующее значение, но сумма элементов массива не превосходило его длинны. Что-то на подобии линейной регрессии

Commented 24 сен 2022 в 21:04
а можно какой-нибудь маленький пример с пояснениями
Commented 24 сен 2022 в 21:06

[54,23,23] сумма этого ряда чисел делится на 3. У нулевого элемента от деления разность составляет +21, у второго и третьего -10. Задача в том, чтобы функция определяла элемент с наименьшей разностью (не важно + или -) и округляла его в соответствующую сторону, но чтобы сумма элементов массива в свою очередь была строго равна длине массива. Приблизительный результат данного примера должен получиться [2,1,0] или [2,0,1]

Commented 24 сен 2022 в 21:17

54+23+23 = 100 (сумма ряда) - на 3 не делится, от деления разность составляет - а что такое разность от деления и от деления на что именно в данном случае?

Commented 24 сен 2022 в 21:28

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

По мере округления ошибка переносится на следующие элементы. В итоге это приведёт к тому что сумма округлённого массива будет равна сумме исходного.

Подгонка суммы массива вынесена в отдельную функцию:

def norm_arr(a): s = sum(rel) return [len(rel) * v / s for v in rel] def round_arr(a): b = [] error = 0 for v in a: r = round(v + error) b.append(r) error = v - r return b rel = [40, 21, 16.5, 22.5] print(round_arr(norm_arr(rel))) 
$ python round_arr.py [2, 0, 2, 0] 

P.S. Это традиционный способ снижения битности изображений - пикселы округляются, а сумма (яркость картинки) остаётся примерно такой же. В вашем случае задачу можно ставить по разному, этот способ может подойти.

Как округлить значения в массиве Python? ����

Вы можете использовать функцию round(), чтобы округлить значения в массиве в Python. Вот пример кода:

arr = [1.2, 2.7, 3.5, 4.9] rounded_arr = [round(num) for num in arr] print(rounded_arr)

Результатом будет новый массив, в котором значения округлены до ближайшего целого числа:

[1, 3, 4, 5]

Вы также можете указать количество знаков после запятой для округления, используя второй аргумент функции round():

arr = [1.234, 2.567, 3.891] rounded_arr = [round(num, 2) for num in arr] print(rounded_arr)

Результатом будет массив с округленными значениями с двумя знаками после запятой:

[1.23, 2.57, 3.89]

Детальный ответ

Как округлить значения в массиве Python

Округление чисел – важная операция в программировании, которая может быть полезна в различных ситуациях. Если у вас есть массив чисел в Python и вы хотите округлить их значения, вы можете использовать различные методы и функции.

1. Округление до ближайшего целого числа

Если вам нужно округлить числа до ближайшего целого числа, вы можете использовать функцию round() . Она округляет число до ближайшего целого значения согласно правилам округления.

numbers = [1.4, 2.7, 3.2, 4.8, 5.1] rounded_numbers = [round(num) for num in numbers] print(rounded_numbers) # [1, 3, 3, 5, 5]

2. Округление до указанного количества знаков после запятой

Если вам нужно округлить числа до определенного количества знаков после запятой, вы можете использовать функцию round() с указанием количества знаков после запятой в качестве второго аргумента.

numbers = [1.2345, 2.3456, 3.4567, 4.5678, 5.6789] rounded_numbers = [round(num, 2) for num in numbers] print(rounded_numbers) # [1.23, 2.35, 3.46, 4.57, 5.68]

3. Округление вверх или вниз

Если вам нужно округлить числа вверх или вниз до ближайшего целого значения, вы можете использовать функции math.ceil() и math.floor() из модуля math .

import math numbers = [1.4, 2.7, 3.2, 4.8, 5.1] rounded_up = [math.ceil(num) for num in numbers] rounded_down = [math.floor(num) for num in numbers] print(rounded_up) # [2, 3, 4, 5, 6] print(rounded_down) # [1, 2, 3, 4, 5]

4. Округление до ближайшего десятка, сотни или тысячи

Если вам нужно округлить числа до ближайшего десятка, сотни или тысячи, вы можете использовать арифметические операции в сочетании с функцией round() .

Округление до ближайшего десятка:
numbers = [14, 27, 32, 48, 51] rounded_to_tens = [round(num, -1) for num in numbers] print(rounded_to_tens) # [10, 30, 30, 50, 50]
Округление до ближайшего сотни:
numbers = [145, 278, 322, 465, 551] rounded_to_hundreds = [round(num, -2) for num in numbers] print(rounded_to_hundreds) # [100, 300, 300, 500, 600]
Округление до ближайшего тысячи:
numbers = [1445, 2778, 3222, 4865, 5551] rounded_to_thousands = [round(num, -3) for num in numbers] print(rounded_to_thousands) # [1000, 3000, 3000, 5000, 6000]

5. Округление к ближайшему значению

Если вам нужно округлить числа к ближайшему значению, вы можете использовать функцию numpy.around() . Она округляет число до ближайшего четного.

import numpy as np numbers = [1.4, 2.7, 3.2, 4.8, 5.1] rounded_numbers = np.around(numbers) print(rounded_numbers) # [1., 3., 3., 5., 5.]

Надеюсь, эта статья помогла вам понять, как округлить значения в массиве Python. Вы можете выбрать подходящий метод в зависимости от ваших потребностей. Удачи в программировании!

Как округлить значения в массиве Python? ����

Вы можете использовать функцию round(), чтобы округлить значения в массиве в Python. Вот пример кода:

arr = [1.2, 2.7, 3.5, 4.9] rounded_arr = [round(num) for num in arr] print(rounded_arr)

Результатом будет новый массив, в котором значения округлены до ближайшего целого числа:

[1, 3, 4, 5]

Вы также можете указать количество знаков после запятой для округления, используя второй аргумент функции round():

arr = [1.234, 2.567, 3.891] rounded_arr = [round(num, 2) for num in arr] print(rounded_arr)

Результатом будет массив с округленными значениями с двумя знаками после запятой:

[1.23, 2.57, 3.89]

Детальный ответ

Как округлить значения в массиве Python

Округление чисел – важная операция в программировании, которая может быть полезна в различных ситуациях. Если у вас есть массив чисел в Python и вы хотите округлить их значения, вы можете использовать различные методы и функции.

1. Округление до ближайшего целого числа

Если вам нужно округлить числа до ближайшего целого числа, вы можете использовать функцию round() . Она округляет число до ближайшего целого значения согласно правилам округления.

numbers = [1.4, 2.7, 3.2, 4.8, 5.1] rounded_numbers = [round(num) for num in numbers] print(rounded_numbers) # [1, 3, 3, 5, 5]

2. Округление до указанного количества знаков после запятой

Если вам нужно округлить числа до определенного количества знаков после запятой, вы можете использовать функцию round() с указанием количества знаков после запятой в качестве второго аргумента.

numbers = [1.2345, 2.3456, 3.4567, 4.5678, 5.6789] rounded_numbers = [round(num, 2) for num in numbers] print(rounded_numbers) # [1.23, 2.35, 3.46, 4.57, 5.68]

3. Округление вверх или вниз

Если вам нужно округлить числа вверх или вниз до ближайшего целого значения, вы можете использовать функции math.ceil() и math.floor() из модуля math .

import math numbers = [1.4, 2.7, 3.2, 4.8, 5.1] rounded_up = [math.ceil(num) for num in numbers] rounded_down = [math.floor(num) for num in numbers] print(rounded_up) # [2, 3, 4, 5, 6] print(rounded_down) # [1, 2, 3, 4, 5]

4. Округление до ближайшего десятка, сотни или тысячи

Если вам нужно округлить числа до ближайшего десятка, сотни или тысячи, вы можете использовать арифметические операции в сочетании с функцией round() .

Округление до ближайшего десятка:
numbers = [14, 27, 32, 48, 51] rounded_to_tens = [round(num, -1) for num in numbers] print(rounded_to_tens) # [10, 30, 30, 50, 50]
Округление до ближайшего сотни:
numbers = [145, 278, 322, 465, 551] rounded_to_hundreds = [round(num, -2) for num in numbers] print(rounded_to_hundreds) # [100, 300, 300, 500, 600]
Округление до ближайшего тысячи:
numbers = [1445, 2778, 3222, 4865, 5551] rounded_to_thousands = [round(num, -3) for num in numbers] print(rounded_to_thousands) # [1000, 3000, 3000, 5000, 6000]

5. Округление к ближайшему значению

Если вам нужно округлить числа к ближайшему значению, вы можете использовать функцию numpy.around() . Она округляет число до ближайшего четного.

import numpy as np numbers = [1.4, 2.7, 3.2, 4.8, 5.1] rounded_numbers = np.around(numbers) print(rounded_numbers) # [1., 3., 3., 5., 5.]

Надеюсь, эта статья помогла вам понять, как округлить значения в массиве Python. Вы можете выбрать подходящий метод в зависимости от ваших потребностей. Удачи в программировании!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *