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

Respuestas a la pregunta(2)

Su respuesta a la pregunta