Duvida em Formula

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Duvida em Formula

Mensagem por juniorcamilo »

Amigos..

o que pode ser:
compilado sem a função:

Código: Selecionar todos

Procedure ErrorSys()
    ErrorBlock( {|e| DefError(e)} )
return .t.
function DefError(e)


return .t.

Código: Selecionar todos

Function Main()  
  Local nPerDes  := 0.00
  Local nTotal   := 0.00
  Local nAcre    := 0.00
  Local nDesc    := 0.00
  Local nTot1    := (nTotal + (nTotal * ( nAcre/100 )))
  nPerdes  := nTot1 - nDesc
  nPerdes  := nPerdes/nTot1
  nPerdes  := 1 - nPerdes
  nPerdes  := nPerdes * 100
return .t.
O resultado de nPerdes := 0

Mas c compilar com a função da erro (Argument error)!!!!
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Duvida em Formula

Mensagem por juniorcamilo »

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Duvida em Formula

Mensagem por JoséQuintas »

Pra que complicar?
O problema é dividir por zero.

Código: Selecionar todos

Function Main() 
 Local nPerDes := 0, nTotal := 0, nAcre  := 0, nDesc  := 0, nTot1

nTot1  := ( nTotal + ( nTotal * ( nAcre/100 ) ) )
IF nTot1 == 0
   RETURN .T.
ENDIF
 nPerdes := nTot1 - nDesc
 nPerdes := nPerdes / nTot1
 nPerdes := 1 - nPerdes
 nPerdes := nPerdes * 100
RETURN .T.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Duvida em Formula

Mensagem por juniorcamilo »

JoséQuintas escreveu:Pra que complicar?
O problema é dividir por zero.
sim sabia q era 'divisao por zero'!!, o que eu não sabia q o clipper tratava retornando '0', e a função

Código: Selecionar todos

proc ErrorSys()
  ErrorBlock( {|e| DefError(e)} )
return
, em si não tratava !!!! ai q aprendi no post como tratar!!!mas infelizmente, primeiro eu postei e depois q achei como tratar(falha minha)!!!
e o exemplo q dei era só para teste(simples entendimento do que eu queria passar aki no fórum)!!
(Obs: quanto mais tempo passo em clipper..., vejo o tanto q essa ferramenta é incrível!!!)
Obrigado !!!
Responder