Diferencia entre 2 números iguales. Por Que?
-
- Posts: 212
- Joined: Wed Apr 07, 2021 3:56 pm
Diferencia entre 2 números iguales. Por Que?
Buenos días.
Me sucede que el resultado de esta resta es IGUAL al valor de la varible y sin embargo sale por el ELSE.
Por que puede suceder esto? como lo evito?
if (nIngEfe-nEgrEfe) = nTotArq
If MsgYesNo('Confirma Cierre de Caja '+str(nQueCaja,5)+' ?','Caja')
CajTFor->Cierre := qfecha
....
endif
else
MsgAlert(' Arqueo: '+Transform(nTotArq,'99,999,999.99')+CRLF+ ;
'Saldo en Caja: '+Transform((nIngEfe-nEgrEfe),'99,999,999.99') +CRLF+CRLF+' NO SE PUEDE CERRAR CAJA!!!!'+CRLF+CRLF+'No
Coincide el Saldo en efectivo con el arqueo !!!','Atención!!!')
endif
Gracias
Me sucede que el resultado de esta resta es IGUAL al valor de la varible y sin embargo sale por el ELSE.
Por que puede suceder esto? como lo evito?
if (nIngEfe-nEgrEfe) = nTotArq
If MsgYesNo('Confirma Cierre de Caja '+str(nQueCaja,5)+' ?','Caja')
CajTFor->Cierre := qfecha
....
endif
else
MsgAlert(' Arqueo: '+Transform(nTotArq,'99,999,999.99')+CRLF+ ;
'Saldo en Caja: '+Transform((nIngEfe-nEgrEfe),'99,999,999.99') +CRLF+CRLF+' NO SE PUEDE CERRAR CAJA!!!!'+CRLF+CRLF+'No
Coincide el Saldo en efectivo con el arqueo !!!','Atención!!!')
endif
Gracias
- Manuel Aranda
- Posts: 605
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Diferencia entre 2 números iguales. Por Que?
¿Has probado a usar esto?
Code: Select all | Expand
if (nIngEfe-nEgrEfe) == nTotArq
Un saludo,
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
- carlos vargas
- Posts: 1721
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: Diferencia entre 2 números iguales. Por Que?
Para comparar números usa la función
Code: Select all | Expand
round(num1,2)==round(num2,2)
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
-
- Posts: 212
- Joined: Wed Apr 07, 2021 3:56 pm
- albeiroval
- Posts: 383
- Joined: Tue Oct 16, 2007 5:51 pm
- Location: Barquisimeto - Venezuela
Re: Diferencia entre 2 números iguales. Por Que?
Carlos yo tambien utilizo tu codigo para comparar dos valores numericos, lo que no entiendo es porque no se puede hacer de manera simple :carlos vargas wrote:Para comparar números usa la funciónCode: Select all | Expand
round(num1,2)==round(num2,2)
Code: Select all | Expand
num1 := 15.25
num2 := 15.25
if num1 == num2 // if round(num1,2)==round(num2,2)
? "Iguales"
else
? "no iguales" <------- Siempre retorna esto
endif
- carlos vargas
- Posts: 1721
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: Diferencia entre 2 números iguales. Por Que?
Creo es por que en los números los decimales podrían ser
15.25000001 == 15.2500012 //falso
15.25000001 == 15.2500012 //falso
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Diferencia entre 2 números iguales. Por Que?
Asi funciona bien:
Code: Select all | Expand
if ( 15.25000001 - 15.2500012 ) != 0
? "si"
endif
- FranciscoA
- Posts: 2163
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Diferencia entre 2 números iguales. Por Que?
Intenta de esta manera:
if Str( nIngEfe-nEgrEfe, 12,2) == Str( nTotArq, 12,2)
if Str( nIngEfe-nEgrEfe, 12,2) == Str( nTotArq, 12,2)
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql