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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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