Hola lista. Tengo una duda. Estoy formando un diccionario:
Código PHP:
diccionario['sumaSubtotal'] = cursor.fetchone()[0] <--- lo obtengo de la base de datos, es un Decimal, puesto que representa a un campo del tipo numeric.
diccionario['sumaDescuento'] = round(diccionario['sumaSubtotal']*self.descuento_porcentaje/100)
diccionario['sumaTotal'] = diccionario['sumaSubtotal'] - diccionario['sumaDescuento']
Esto me lanza una excepcion "unsupported operand type(s) for -: 'Decimal' and 'float'"
Debido a que al aplicar el round en dicc...['sumaDescuento'] se transforma de Decimal a float.
Es posible, de alguna forma evitar que se transforme de Decimal a float al aplicar el round???
Se que también podría pasarlo a str y después a decimal, o pasarlo a long operar y despues volverlo a float para quede no que de forma ilegible, pero quería saber si hay alguna forma más limpia de hacerlo.
A propósito, otra duda. Para python hay alguna diferencia al trabajar con decimal o float?Lo digo por que yo he observado en bases de datos postgreSQL que cuando se trabaja con números grandes es más seguro usar numeric, debido a que las aproximaciones con otros tipos de datos como decimal son más inexactas.
P.D:Bueno, tal véz, como uso valores redondeados, quizás da lo mismo de los números decimales.
Saludos.