Titolo: Confrontare due reali: il comando SET REAL COMPARISON LEVEL
Categoria: Comandi |
|
Ultimo Aggiornamento: 20/01/05 |
Il comando SET REAL COMPARISON LEVEL a cui viene passato come parametro un numero, indica il valore epsilon secondo cui valutare l'uguaglianza fra due numeri reali.
Come visto nella faq sull'arrotondamento dei numeri reali, il computer effettua delle approssimazioni per calcolare i numeri reali: quindi anche nel calcolare l'uguaglianza fra due numeri 4th Dimension deve tenere in considerazione questa approssimazione, controllando se se la differenza fra due numeri eccede o meno un certo valore. Questo valore è dato proprio dall'epsilon passato come parametro a SET REAL COMPARISON LEVEL.
Vediamo un esempio.
Dati due numeri reali a e b, se Abs(a-b) è maggiore di epsilon i numeri verranno considerati diversi, altrimenti uguali.
Di default, 4D usa come epsilon 10 elevato a -6 (10^-6). Ciò significa che:
• 0,00001=0,00002 restituisce False perché la loro differenza (0,00001) è maggiore di 10^-6.
• 0,000001=0,000002 ritorna True perché la loro differenza (0,000001) non è maggiore di 10^-6.
• 0,000001=0,000003 restituisce False perché la loro differenza (0,000002) è maggiore di 10^-6.
Bisogna dunque usare SET REAL COMPARISON LEVEL se risulta necessario confrontare valori più bassi di 10^-6.
Si noti inoltre che se si deve eseguire una query o un ordinamento su un campo contenente valori più bassi di 10^-6, il comando SET REAL COMPARISON LEVEL deve essere usato prima della costruzione dell'indice.
Il comando non ha alcun effetto sul calcolo o la visualizzazione dei numeri reali.
Inviato da: PierPaolo Sichera |
|
Visite: 13505 |
Se accedi con utente e password, puoi aggiungere dei commenti.