Python Redondeando al paso personalizado
Tenemos un código que funciona parcialmente y 2 ejemplos con diferentes tipos de pasos personalizados. El ejemplo 2 (Int) está funcionando, mientras que el ejemplo 1 no, ya que se está redondeando hacia arriba en lugar de hacia abajo.
import math
def step_size_to_precision(ss):
return ss.find('1') - 1
def format_value(val, step_size_str):
precision = step_size_to_precision(step_size_str)
if precision > 0:
return "{:0.0{}f}".format(val, precision)
return math.floor(int(val))
###########################
# # example 1
step_size = "0.00000100"
quantity = 0.00725562
print(quantity)
print(format_value(quantity, step_size))
# 0.00725562
# 0.007256 <= Is rounding up instead of down. Should be 0.007255
###########################
# # example 2
# step_size = "1"
# quantity = 3.00725562
# print(quantity)
# print(format_value(quantity, step_size))
# returns 3 <= This is correct
###########################
¿Cómo lo arreglamos