mantener decimales

27/09/2007 - 20:44 por LuisVF | Informe spam
Como puedo mantener el número máximo de decimales en VBA?

Hago operaciones del tipo:

dim x, y as Double

x = 41.235689
y = 78.14253678

[a5] = [b5] * x
[b5] = y
[a6] =[a5]*[b5]

y le doy formato con NunberFormat (.NumberFormat = "#,##0.00 $") para que
sólo muestre dos decimales.

Lo que hace es cortar los números y las inexactitudes se arrastran
 

Leer las respuestas

#1 Héctor Miguel
29/09/2007 - 07:53 | Informe spam
hola, Luis !

no es muy claro el *objetivo* de mantener decimales en vba -?-
pero toma en cuenta las siguientes observaciones:

1) en la forma de declaracion de variables que utilizas:
-> dim x, y as Double
a) la variable "x" tiene asignada [por omision] el tipo de datos *Variant*
b) la variable "y" tiene asignada *explicitamente* un tipo de datos *Double*
c) si tu intencion es que ambas variables tomen el tipo de datos double, debes modificar la instruccion a:
-> Dim x As Double, y As Double

2) usar la propiedad *.NumerFormat = ...*
a) NO modifica el numero *real* que guarda la celda
b) es solamente una *mascara* [formato, aspecto visual, etc.] para presentar el numero *real* almacenado

3) comprueba el valor *real* [almacenado] en la celda pe.
a) si es un valor constante [NO formula]: -> lo podras ver en la barra de formulas
b) si es un valor resultado de una formula: -> pulsa las teclas {F2} seguida por {F9}
[una vez que compruebes cuantas decimales tiene el numero *real*, pulsa la tecla {Esc}]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
Como puedo mantener el numero maximo de decimales en VBA?
Hago operaciones del tipo:

dim x, y as Double

x = 41.235689
y = 78.14253678

[a5] = [b5] * x
[b5] = y
[a6] =[a5]*[b5]

y le doy formato con NunberFormat (.NumberFormat = "#,##0.00 $") para que solo muestre dos decimales.
Lo que hace es cortar los números y las inexactitudes se arrastran

Preguntas similares