error de la funcion Val() en numeros largos

Post Reply
SauroSrl
Posts: 17
Joined: Mon Feb 06, 2006 2:57 pm

error de la funcion Val() en numeros largos

Post by SauroSrl »

Hola amigos el foro:

Ayuda por favor, la oficina de Impuestos de Bolivia requiere que los datos de una Factura sean encriptados, previo el añadido de un digito verificador, por lo cual necesito hacer la siguiente operacion:

VAL("4209253717027162"+"1")

pero el resultado que me arroja la funcion Val() es:

42092537170271624

... el ultimo digito, en el valor numerico, se vuelve 4 (en vez e 1).

esto en realidad es un error de xHarbour??

estoy usando FWH26 y xharbour 0.99.3

De antemano gracias por la ayuda.
Rolando
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Rolando,

Lo hemos preguntado en la lista de desarrollo de Harbour.

Falla por igual en Harbour y xHarbour. No es error de FWH, ya que Val() pertenece a ellos.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Hola

En xHarbour Compiler build 0.99.71 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/

Funciona correctamente el ejemplo
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
QAZWSX2K
Posts: 359
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

Post by QAZWSX2K »

y porque no haces VAL("4209253717027162")+val("1")
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian

alex_patino74@hotmail.com
whatsapp 57+3214777217
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post by karinha »

Code: Select all


// Testing a VAL()

#Include "FiveWin.Ch"

//------------------------------------------------------------------------//

Function Main()

   LOCAL oDlg
   LOCAL cVAL := "4209253717027162"
   LOCAL oGet

   DEFINE DIALOG oDlg TITLE "Just a get"

   @ 1.5,  2 SAY "Val:" OF oDlg

   @ 2,  6 GET oGet VAR cVAL OF oDlg SIZE 80, 12  ;
           VALID ! Empty( cVAL )

   @ 3,  7 BUTTON "&Ok" OF oDlg SIZE 30, 12       ;
           ACTION ( Calcula_Val( cVAL ) )

   @ 3, 16 BUTTON "&Cancel" SIZE 30, 12 OF oDlg   ;
           ACTION ( oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg CENTERED

return nil

//------------------------------------------------------------------------//

/*
VAL("4209253717027162"+"1")

pero el resultado que me arroja la funcion Val() es: 

42092537170271624

Desde Clipper:  VAL(A) + VAL(B)
*/

Static Function Calcula_Val( cVAL )

    LOCAL bVal := "1"
    LOCAL A, B, nResuelta

    A :=  VAL( cVAL )
    B :=  VAL( bVAL )

    nResuelta := A + B

    ? nResuelta

Return( .T. )

//-> FIN
João Santos - São Paulo - Brasil
Post Reply