valores una redondear quitar por numero lista flotante decimales debajo cortar como python floating-point integer rounding number-rounding

python - una - Redondee un número de punto flotante al entero más cercano



redondear un numero en python 3 (10)

x//1

El operador // devuelve el piso de la división. Dado que dividir por 1 no cambia su número, esto es equivalente al piso, pero no se necesita importar. Sin embargo, no recibirá una int devuelta.

Como sugiere el título, quiero tomar un número de punto flotante y redondearlo al número entero más cercano. Sin embargo, si no es un todo, SIEMPRE quiero redondear la variable, independientemente de lo cerca que esté del siguiente número entero. ¿Hay alguna forma de hacer esto?



Sencillo

print int(x)

funcionará también


Uno de estos debería funcionar:

import math math.trunc(1.5) > 1 math.trunc(-1.5) > -1 math.floor(1.5) > 1 math.floor(-1.5) > -2


Puede ser muy simple, pero ¿no podrías simplemente redondearlo menos 1? Por ejemplo:

number=1.5 round(number)-1 > 1


Si no quiere importar matemática, puede usar:

int(round(x))

Aquí hay una pieza de documentación:

>>> help(round) Help on built-in function round in module __builtin__: round(...) round(number[, ndigits]) -> floating point number Round a number to a given precision in decimal digits (default 0 digits). This always returns a floating point number. Precision may be negative.


No sé si resolvió esto, pero me tropiezo con esta pregunta. Si quiere deshacerse de los puntos decimales, puede usar int (x) y eliminará todos los dígitos decimales. No es necesario usar round (x).


Para obtener el resultado de coma flotante simplemente use:

round(x-0.5)

Funciona también para números negativos.


mucha gente dice usar:

int(x)

y esto funciona bien para la mayoría de los casos, pero hay un pequeño problema. Si el resultado de OP es:

x = 1.9999999999999999

se redondeará a

x = 2

después del 16 9, se redondeará. Esto no es gran cosa si estás seguro de que nunca te encontrarás con tal cosa. Pero es algo a tener en cuenta.


Si trabaja con numpy, puede usar la siguiente solución que también funciona con números negativos (también está trabajando en matrices)

import numpy as np def round_down(num): if num < 0: return -np.ceil(abs(num)) else: return np.int32(num) round_down = np.vectorize(round_down)

round_down([-1.1, -1.5, -1.6, 0, 1.1, 1.5, 1.6]) > array([-2., -2., -2., 0., 1., 1., 1.])

Creo que también funcionará si solo usas el módulo math lugar del módulo numpy .