FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Diferencia entre 2 números iguales. Por Que?
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Diferencia entre 2 números iguales. Por Que?
Posted: Mon Aug 07, 2023 01:56 PM

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

Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Re: Diferencia entre 2 números iguales. Por Que?
Posted: Mon Aug 07, 2023 02:17 PM
¿Has probado a usar esto?
Code (fw): Select all Collapse
 if (nIngEfe-nEgrEfe) == nTotArq
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Diferencia entre 2 números iguales. Por Que?
Posted: Mon Aug 07, 2023 03:33 PM
Para comparar números usa la función
Code (fw): Select all Collapse
round(num1,2)==round(num2,2)
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Re: Diferencia entre 2 números iguales. Por Que?
Posted: Tue Aug 08, 2023 02:52 AM

Muchas gracias Manuel y Carlos.

Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: Diferencia entre 2 números iguales. Por Que?
Posted: Tue Aug 08, 2023 04:45 AM
carlos vargas wrote:Para comparar números usa la función
Code (fw): Select all Collapse
round(num1,2)==round(num2,2)
Carlos yo tambien utilizo tu codigo para comparar dos valores numericos, lo que no entiendo es porque no se puede hacer de manera simple :
Code (fw): Select all Collapse
num1 := 15.25
num2 := 15.25

if num1 == num2   // if round(num1,2)==round(num2,2)
   ? "Iguales"
else 
  ? "no iguales"  <------- Siempre retorna esto 
endif
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Diferencia entre 2 números iguales. Por Que?
Posted: Tue Aug 08, 2023 06:25 AM

Creo es por que en los números los decimales podrían ser

15.25000001 == 15.2500012 //falso

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Diferencia entre 2 números iguales. Por Que?
Posted: Tue Aug 08, 2023 08:32 AM
Asi funciona bien:
Code (fw): Select all Collapse
   if ( 15.25000001 - 15.2500012 ) != 0 
      ? "si"
   endif
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Diferencia entre 2 números iguales. Por Que?
Posted: Thu Aug 10, 2023 04:52 PM

Intenta de esta manera:

if Str( nIngEfe-nEgrEfe, 12,2) == Str( nTotArq, 12,2)

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion