Controlar decimales

Espektra
03 de Junio del 2004
Tengo un problema con mi aplicacion al controlar decimales.Tengo conectada una bascula al ordenador y lo que hago(o intento hacer)es guardar el dato(peso)que me envia la bascula en la bbdd.Hasta hay todo bien,los datos guardados son correctos pero si entre primer material y el segundo material que peso hay una diferencia de 0'1kg me da error.

inicio = InStr(buferentrada, Chr(2)) 'Almaceno en inicio la posicion donde se encuentra el primer caracter de comienzo de dato

fin = InStr(inicio, buferentrada, Chr(3)) 'Almaceno en fin la posicion del caracter de fin de dato

status = Mid(buferentrada, fin - 1, 1) 'Almaceno en Status el caracter de estado de la bascula

'Muestro en el cuadro de texto el valor del peso.
Txtpeso.Text = Mid(buferentrada, inicio + 1, 8) ' 8 es el nº de bits del dato correspondiente al peso

txtRecibir.Text = buferentrada 'muestro en el otro cuadro de texto el contenido de buferentrada (30 caracteres)

peso = Replace(Txtpeso.Text, ",", " ") 'almaceno el valor del peso (texto) sin la coma "," de separacion

pesofinal = Val(peso) / 10 'almaceno el valor del peso (numerico) tras dividirlo por 10 para sacar el ultimo decimal

Con esto logro el valor que la basculame envia,pero como e dicho antes me da error con 0'1kg de diferencia y lo da en la ultima fila del codigo(pesofinal).La variable "pesofinal"la declaro en el modulo como single,quizas sea eso.
Si alguien me puede ayudar...es necesario.Gracias de antemano.