Autor Tema: MOD + ABS + Comparación = imposible  (Leído 130 veces)

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6402
  • Karma: 164
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
MOD + ABS + Comparación = imposible
« en: Marzo 03, 2020, 03:35:58 pm »
Buenas a todos:


Anoche estaba escribiendo código y me pasó una cosa muy curiosa. Tengo una línea de código similar a esta:
Código: [Seleccionar]
if (valorint1 % abs(valorint2) == 0) Pues el compilador me lanzaba un error de que la operación sólo podía ejecutarse con números enteros. Vale, ABS devuelve un float, pero si quitaba el ABS y ponía (-valorint2) (porque sé que va a ser negativo, lo de ABS es por las formalidades), me sigue diciendo lo mismo.
Si guardo abs(valorint) en una variable temporal, sí funciona, pero la línea, tal cual, no.


Y he hecho comparaciones con valores abs anteriormente sin problemas, pero parece que con el módulo, la cosa no es tan sencilla :p


Ya de paso, ando un poco oxidado con BennuGD después de tanto C#, VB, XML... ¿Cómo era el casteo de variables? Para convertir un float en un int.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

panreyes

  • Administrator
  • *****
  • Mensajes: 2240
  • Karma: 81
    • panreyes.com
Re:MOD + ABS + Comparación = imposible
« Respuesta #1 en: Marzo 03, 2020, 04:37:59 pm »
Prueba ésto:
 if (valorint1 % ((int) abs(valorint2)) == 0)