Spanish [SOLUCIONADO] TIPO DE VARIABLE (FLOAT) EN B4J

RAFA BRAVO

Active Member
Licensed User
Longtime User
Recibo en un servidor B4J una variable tipo float, si por ejemplo la variable tiene el valor 12.3, al imprimirla me aparece redondeada a la baja 12.2999999. Solo cunado el valor es por ejemplo 4.0 o 4.5 se representa tal cual. después esta misma variable la envió a B4A por B4XSerializator y en el móvil si queda representada tal cual. Alguna idea para que que no redondee a la baja o a la alza? gracias.
 

cas6678

Active Member
Licensed User
Longtime User
No te aparece redondeada a la baja. 12,3 y 12.29999999.... es lo mismo. Literalmente lo mismo, no casi lo mismo.

Se me ocurre que para solucionar tu problema de "impresion" puedes cambiar previamente a otro tipo de variable, alguna que no sea de coma flotante como FLOAT, y veras que el problema desaparece.

Supongo que tambien habra formas de que la impresion de un float se muestre de una u otra manera, pero yo no las conozco.

https://es.wikipedia.org/wiki/Coma_flotante
 

RAFA BRAVO

Active Member
Licensed User
Longtime User
NumberFormat y NumberFormat2
Con estas dos funciones puedo doblegar la variable hasta donde quiero.
asi funciona el tipo FLOAT. si no quieres tener estos problemas no uses FLOAT usa DOUBLE
El problema es que leo y escribo variables desde un equipo industrial donde los programas y variables ya están creadas y "no se pueden modificar", entonces mi intención es poder leer con b4x, todos los tipos de variables que se puedan crear en el PLC. Aun que como dice el compañero cas6678 las dos cosas sean lo mismo, yo quiero representarlas con el mismo aspecto que han sido creadas en el equipo en planta. Con esto doy por solucionado el problema, gracias a los dos.
 
Top