Así que estoy trabajando en esta aplicación donde necesito convertir números aleatorios en un múltiplo de otros números. Digamos que tengo un número 0.00486585 y debe ser un múltiplo de 0.00010000 . Los números aleatorios pueden ser cualquier cosa, desde números enteros hasta números de coma flotante, pero tendrán sus propios valores de incremento.
Los valores de incremento podrían ser algo así como 1, 0.1, 0.01, 0.001, etc. Aquí hay una declaración de lo que es un valor incremental: The increment of the order size. The value shall be a positive multiple of the baseIncrement.
Sé que puedo verificar si un número es un múltiplo de otro con la ayuda de módulo, pero esto es un poco diferente ya que necesito tener una fórmula universal que funcione con cualquier número aleatorio o cualquier valor incremental para convertir un número en un múltiplo
Tenga en cuenta que el número resultante debe ser lo más cercano posible al número original y no debe exceder el número original.
Su ayuda sería muy apreciada.
Considerar
x = 0.21321 y = 0.01 x-(x%y)Esto debería darte el número que es divisible. Sin embargo, aquí hay un problema debido a un error de redondeo en JS
x%y viene en 0.0032100000000000063
Para evitar esto, puede usar un redondeo
(x-(x%y).toFixed(5))toFixed(5) es solo para referencia. Debe modificar el decimal de acuerdo con el requisito.