Comunidad Gambas-es
[SOLUCIONADO] Resultado inesperado - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: [SOLUCIONADO] Resultado inesperado (/thread-128.html)



Resultado inesperado - gambafeliz - 07-10-2020

Tengo un calculo con float y me devuelve un resultado inesperado.

Lo voy a intentar explicar pero no se como poner un ejemplo, aun así voy a dar los datos por si se os ocurre algo.

Describo:

Variable fSaldo es un float y se forma así, fSaldo = CFloat(sSaldo), sSaldo es un String con valor "707,04" y este es el calculo:

fTransferencias = fSaldo + (fSuma) + (-1*fSaldoMesSiguiente) 'explico Float = Float + (Float) + (1*(Float)

fTransferencias = 707,04 + (-103,89) + (-1*603,15) ' esto me devuelve 1,13686837721616E-13 pero en realidad es 0

Por favor, ¿alguien me dice por que me devuelve 1,13686837721616E-13 en vez de 0?

Gracias.


RE: Resultado inesperado - jsbsan - 07-10-2020

Gambafeliz:

Es un tema de conversión interna del ordenador (de operar en binario). El número  1,13686837721616E-13, es 0,00000000001136868377216616... osea 0.00 €

Lo que tienes que hacer es redondear a 2 decimales, (supongo que estas usando euros, y te va a interesar los céntimos).

algo asi como:
ftransferencias= round( 707,04 + (-103,89) + (-1*603,15)  ,-2)


RE: Resultado inesperado - gambafeliz - 07-10-2020

Pues sí tienes toda la razón, pero toda toda Smile

Mira sin conocerte ni na, pero que guapo eres, que mariconada con perdón Smile

Gracias.