gambafeliz   07-10-2020, 11:11
#1
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.
Última modificación: 07-10-2020, 11:27 por gambafeliz.
jsbsan   07-10-2020, 11:19
#2
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)
gambafeliz   07-10-2020, 11:27
#3
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.
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.