truncar redondear parte operaciones multiplicacion matematicas exponente entera decimales python python-2.7 math syntax operators

parte - redondear decimales python



¿Cómo obtengo un valor decimal cuando uso el operador de división en Python? (11)

Por ejemplo, el símbolo de división estándar ''/'' se redondea a cero:

>>> 4 / 100 0

Sin embargo, quiero que devuelva 0.04. ¿Qué uso?


Agregue la siguiente función en su código con su devolución de llamada.

# Starting of the function def divide(number_one, number_two, decimal_place = 4): quotient = number_one/number_two remainder = number_one % number_two if remainder != 0: quotient_str = str(quotient) for loop in range(0, decimal_place): if loop == 0: quotient_str += "." surplus_quotient = (remainder * 10) / number_two quotient_str += str(surplus_quotient) remainder = (remainder * 10) % number_two if remainder == 0: break return float(quotient_str) else: return quotient #Ending of the function # Calling back the above function # Structure : divide(<divident>, <divisor>, <decimal place(optional)>) divide(1, 7, 10) # Output : 0.1428571428 # OR divide(1, 7) # Output : 0.1428

Esta función funciona sobre la base del "Algoritmo de la División Euclid". Esta función es muy útil si no desea importar ningún archivo de encabezado externo en su proyecto.

Syntex: divide ([divisor], [divisor], [lugar decimal (opcional)]

Código: divide(1, 7, 10) O divide(1, 7)

Comenta abajo para cualquier consulta.


Aquí tenemos dos posibles casos dados a continuación

from __future__ import division print(4/100) print(4//100)


Convierta uno o ambos términos en un número de punto flotante, como ese:

4.0/100.0

Alternativamente, active la función predeterminada en Python 3.0, ''división verdadera'', que hace lo que quiere. En la parte superior de tu módulo o script, hazlo:

from __future__ import division


Es posible que también desee ver el paquete decimal de Python. Esto proporcionará buenos resultados decimales.

>>> decimal.Decimal(''4'')/100 Decimal("0.04")


Hay tres opciones:

>>> 4 / float(100) 0.04 >>> 4 / 100.0 0.04

que es el mismo comportamiento que C, C ++, Java, etc.

>>> from __future__ import division >>> 4 / 100 0.04

También puede activar este comportamiento pasando el argumento -Qnew al intérprete de Python:

$ python -Qnew >>> 4 / 100 0.04

La segunda opción será la predeterminada en Python 3.0. Si desea tener la división de enteros anterior, debe usar el operador // .

Editar : sección agregada sobre " -Qnew , gracias a ΤΖΩΤΖΙΟΥ !


Importar división de la biblioteca futura de esta manera:

from__future__ import division


Necesita decirle a Python que use valores de coma flotante, no enteros. Puedes hacerlo simplemente usando un punto decimal en las entradas:

>>> 4/100.0 0.040000000000000001


No puede obtener un valor decimal al dividir un número entero con otro, siempre obtendrá un número entero de esa manera (resultado truncado en número entero). Necesita al menos un valor para ser un número decimal.


Otras respuestas sugieren cómo obtener un valor de coma flotante. Si bien esto estará cerca de lo que desea, no será exacto:

>>> 0.4/100. 0.0040000000000000001

Si realmente quiere un valor decimal , haga esto:

>>> import decimal >>> decimal.Decimal(''4'') / decimal.Decimal(''100'') Decimal("0.04")

Eso le dará un objeto que sepa correctamente que 4/100 en la base 10 es "0.04". Los números de coma flotante están realmente en la base 2, es decir, binarios, no decimales.


Prueba 4.0 / 100


Una ruta simple 4 / 100.0

o

4.0 / 100