PDA

Ver la Versión Completa : resta de dos numeros reales no da cero ...


chelejuan
20-01-2005, 17:36:41
Es asi de tonto :

var
valor1, valor2 : real;


le doy los valores en varios calculos.

Si lo miro con f7 veo que los dos pone 212,85 pero si los resto me salen valores de - 0,654654 elevado a no se cuanto y si pongo que si son iguales me dice que no.

¿Que sucede? ¿Que hago mal?.

Necesito saber si uno es mayor a otro, en realidad uno es el total y el otro es la suma, y necesito saber si el que es la suma se ha pasado del total para avisar.

Venga un saludo yg racias anticipadas

delphi.com.ar
20-01-2005, 18:13:56
Puedes utilizar la función CompareValue definida en la unit Math.
Call CompareValue to determine the relationship between two numeric values. When comparing floating-point values, CompareValue lets you specify a maximum difference to use when comparing values, so that they are considered the same if they are within that amount.

Saludos!

chelejuan
20-01-2005, 18:22:55
Muchas gracias, parece que funciono :D

Puse esto :

a1 := CompareText(floattostr(p1),floattostr(p2)); // donde p1 y p2 son real
Si a1 = 0 es que son iguales.

Venga un saludo y gracias de nuevo.

delphi.com.ar
20-01-2005, 18:42:33
Yo prefiero tratar siempre los tipos de datos como lo que son, si son nros reales utilizar las funciones creadas para estos.

Saludos!

chelejuan
21-01-2005, 09:37:01
¿Y cual es para reales?.

Tengo delphi 5.0 y muchas variables que leo en foros y me comentais pues no me aparecen y dan error.

Venga un saludo.

P.D. Y si claro es mejor usar la suya.