Access - Tipos de datos y cosas raras

 
Vista:

Tipos de datos y cosas raras

Publicado por daniel (2 intervenciones) el 09/04/2021 10:24:33
Buenas.
A ver si alguien me explica por qué pasa esto y algún truco para evitarlo

CODIGO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub pr2()
Dim intPotencia As Integer
Dim sngPotencia As Single
Dim dblPotencia As Double
Dim varPotencia As Variant
intPotencia = 6
sngPotencia = 6
dblPotencia = 6
varPotencia = 6
 
 Debug.Print "int:" & Int(8.51 * 10 ^ intPotencia)
 Debug.Print "sng:" & Int(8.51 * 10 ^ sngPotencia)
 Debug.Print "dbl:" & Int(8.51 * 10 ^ dblPotencia)
 Debug.Print "var:" & Int(8.51 * 10 ^ varPotencia)
 End Sub
______________
SALIDA
int:8509999
sng:8509999
dbl:8509999
var:8510000
___________________
El único que funciona bien es el Variant!!

Sé que es algo que también ocurre en otros entornos, pero no consigo dar en la web con aclaraciones al respecto, supongo que no sé bien cómo buscarlo. Si alguien simplemente me dice que palabritas poner en google para buscar info, lo agradecería.
Gracias y saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Tipos de datos y cosas raras

Publicado por jose (830 intervenciones) el 09/04/2021 16:17:10
si es raro esto
parece que solo tiene en cuenta el primer dato

si los haces asi si funciona

Dim a As Integer

a = 6

MsgBox Int(8.51 * 10 ^ a) : 'esto da error
b = 8.51 * 10 ^ a
MsgBox Int(b) : ' esto da bien el resultado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tipos de datos y cosas raras

Publicado por Daniel (2 intervenciones) el 09/04/2021 20:19:34
Gracias!
Lo que busco es más una explicación
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar