El tipo de datos CURRENCY es un entero con signo de 8 bytes multiplicado por 10.000. Esto permite una variable del tipo CURRENCY que tienen una gama de:
(2 ^ 63 -1) / 10,000 = +922337203685477.5807
para
(2 ^ 63) / 10,000 = -922337203685477.5808
de 19 dígitos permitidos, con no más de 4 dígitos a la derecha del separador decimal.
Porque el tipo CURRENCY está a escala por 10.000, su representación interna es el valor real multiplicado por 10.000. Por ejemplo, una variable CURRENCY que contiene el valor 0,0001 se almacenarán como sigue:
HIGH BYTE LOW BYTE
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001
como con enteros normales, el byte superior se almacena en la dirección de memoria superior, por lo que una vez encontrar la dirección de la variable, podrá encontrar el byte bajo existe, el segundo byte almacenados anteriormente, el tercer byte por encima, etc.. A continuación muestra el programa de ejemplo muestran la representación hexadecimal del equipo para una variable de tipo de datos CURRENCY cuyo valor es INPUT desde el teclado.
Código de ejemplo:
'To try this example in VBDOS.EXE:
' 1. From the File menu, choose New Project.
' 2. Copy the code example to the Code window.
' 3. Press F5 to run the program.
'
'To try this example in VB.EXE:
' 1. From the File menu, choose New Project.
' 2. Copy the code example to Form_Click event procedure.
' (Note: code will have to be slightly changed for VB)
' 3. Press F5 to run the program.
' 4. Click on the Form
'
'To try this example in QB.EXE or QBX.EXE
' 1. From the File menu, choose New Program.
' 2. Copy the code example to the Code window.
' 3. Press F5 to run the program.
'
'******************************************************************
' Sample program to display machine representation of the *
' CURRENCY data type (8-byte scaled INTEGER) *
'******************************************************************
CLS
DO UNTIL INKEY$ = CHR$(27)
PRINT "Enter a CURRENCY value. The machine representation will be "
PRINT "displayed in Hex"
INPUT a@ ' "@" is the CURRENCY data type suffix.
address% = VARPTR(a@) ' Get the address of the variable a@.
FOR i% = 7 TO 0 STEP -1
PRINT HEX$(PEEK(address% + i%)); " "; ' Display representation
NEXT i% ' in normal Low-Byte to
' the right form.
PRINT
PRINT "press a key to continue, Esc to EXIT"
SLEEP
LOOP
Id. de artículo: 51414 - Última revisión: martes, 16 de agosto de 2005 - Versión: 2.1
La información de este artículo se refiere a:
- Microsoft Visual Basic for MS-DOS
- Microsoft Visual Basic 1.0 Standard Edition
- Microsoft QuickBasic 4.0
- Microsoft QuickBASIC 4.0b
- Microsoft QuickBasic 4.5 para MS-DOS
- Microsoft BASIC Professional Development System 7.0
- Microsoft BASIC Professional Development System 7.1
Traducción automáticaIMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés):
51414
(http://support.microsoft.com/kb/51414/en-us/
)
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia algunaEl presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.