existen flotantes en vb.net?

29/05/2005 - 20:53 por Sonia | Informe spam
estoy haciendo un formulario sobre pedidos y si el precio es 19,8 me sale 20
si es 4,3 me sale 4 etc
he pueso 'float' pero me da error
como se puede subsanar esto en vb.net?
gracias!!

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
30/05/2005 - 01:26 | Informe spam
Existen dos tipos de punto flotante, Single y Double. Sin embargo para
valores monetarios es mejor usar Decimal que es un entero escalar (el numero
decimal se guarda como un entero). El asunto es que con numeros de punto
flotante no se pueden representar todos los numeros decimales con precision
y puede ser que haciendo calculos y comparaciones no resulte el valor
esperado. Por ejemplo con este codigo:

Dim v1 As Single = 1.33
Dim v2 As Single = 1
Dim v3 As Single = v1 - v2

If v3 = 0.33 Then
Console.WriteLine("Son iguales")
Else
Console.WriteLine("No son iguales")
End If

Uno pensaria que se va a escribir "Son iguales" pero en lugar se escribe "No
son iguales" y esto porque v3 es en realidad 0.330000043!

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Sonia
30/05/2005 - 09:14 | Informe spam
ok
gracias por contestar
y para mi caso q es ir sumando precios de articulos a medida q vaya haciendo
pedidos, q tipo me aconsejas? pq necesito q haga los calculos exactos
yo lo q hacia es q rellenaba el datagrid y el precio lo colocaba en un
textbox como si fuera string, y asi los iba sumando y poniendo el resultado
en otro textbox 'total', pero es cuando se transformaba sin decimales.
q tipo me aconsejas q ponga?


"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Existen dos tipos de punto flotante, Single y Double. Sin embargo para
valores monetarios es mejor usar Decimal que es un entero escalar (el


numero
decimal se guarda como un entero). El asunto es que con numeros de punto
flotante no se pueden representar todos los numeros decimales con


precision
y puede ser que haciendo calculos y comparaciones no resulte el valor
esperado. Por ejemplo con este codigo:

Dim v1 As Single = 1.33
Dim v2 As Single = 1
Dim v3 As Single = v1 - v2

If v3 = 0.33 Then
Console.WriteLine("Son iguales")
Else
Console.WriteLine("No son iguales")
End If

Uno pensaria que se va a escribir "Son iguales" pero en lugar se escribe


"No
son iguales" y esto porque v3 es en realidad 0.330000043!

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
30/05/2005 - 15:38 | Informe spam
q tipo me aconsejas q ponga?



Decimal.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida