Newsgroup: it.comp.lang.vo-clipper
Titolo: [Clipper] Un problema nella funzione INT()

Cari amici, ricordate il lungo thread riguardante i problemi e relative
soluzioni della funzione ROUND()? Ebbene, su segnalazione di un collega
programmatore Clipper/Fivewin č venuto fuori questo problema sulla
funzione INT() e relativa soluzione:
FUNCTION MAIN()
    ? INT( ( 2.235 + 0.005 ) * 100 )
    ? INT2( ( 2.235 + 0.005 ) * 100 )
    RETURN NIL
FUNCTION INT2( nValue )
    RETURN INT( VAL( STR( nValue ) ) )
Ciao a tutti.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 funzione INT() e relativa soluzione:
Aggiungiamo alle famose EMG round lib ? :)) (che io uso a tutt'oggi) :))
Certo che la CA l'ha fatta proprio bene quella parte :))
Ciao.Alberto.
-- 
Alberto Rubinelli - A2 SISTEMI               posted with Gravity 2.60b
Via Costantino Perazzi 22 - 28100 NOVARA (NO) - ITALY     ICQ 49872318
E-Mail : 
alb...@retrocomputing.net
  Tel. 0321 640149 
Web    : 
www.retrocomputing.net
      Fax  0321 391669 BBS  0321 392320

> Certo che la CA l'ha fatta proprio bene quella parte :))
Certamente, se tutto va bene saranno 5000 commerciali e 3 programmatori
insoddisfatti.

 Certo che la CA l'ha fatta proprio bene quella parte :))
No, in questo caso (e forse anche nel caso della ROUND()) la colpa non è
della CA. La stessa cosa fatta in C dà lo stesso identico risultato. Il
problema risiede nell'approssimazione con cui i numeri frazionari
vengono memorizzati in un floating-point.



Può essere. :-) Comunque, a parte gli scherzi, lo stesso identico
comportamento l'ho riscontrato in Clipper 5.3b, in Harbour e in xHarbour
(oltre che in C). Gli amici di VO possono controllare come si comporta
il loro compilatore al riguardo?


 vengono memorizzati in un floating-point.
Eppure in Delphi non riscontro questo problema ... le librerie non 
dovrebbero essere le stesse ?
Aspetto anche io di sentire altri, ad esempio anche chi usa VO, per 
curiosita'


 insoddisfatti.
Mi piace la precisazione "insoddisfatti" :)))
E pensare che la CA ha pure fatto la pubblicita'  in tv .... spero non 
la faccia MAI la Borland :))
ciao.Alberto


 dovrebbero essere le stesse ?
Sei sicuro di aver provato lo stesso identico calcolo? Se sì,
evidentemente la funzione in Delphi è scritta in modo tale da risolvere
questo problema.


 curiosita'
Con Harbour: 
http://www.harbour-project.org/
c'e' lo stesso problema.
Ho postato sulla mailing list dei developers per vedere cosa emerge e
se qualcuno ci mette una pezza.
Se volete seguire la cosa ecco l'indirizzo degli archivi on line della
mailing list dei developers:
http://www.matrixlist.com/pipermail/harbour/2003-August/date.html
Per seguire comodamente via email le fasi dello sviluppo di Harbour
iscrivetevi alla lista developers.
Ecco comunque per comodità tutte le mailing lists attive del progetto
Harbour
- Lista Developers
Iscrizione: 
http://www.matrixlist.com/mailman/listinfo/harbour
Consultazione archivi: 
http://www.matrixlist.com/pipermail/harbour/
--------------------------
- Lista Harbour Talk
Iscrizione: 
http://www.matrixlist.com/mailman/listinfo/harbourtalk
 
Consultazione archivi:
http://www.matrixlist.com/pipermail/harbourtalk/
--------------------------
- Lista Harbour Users
Iscrizione: 
http://www.matrixlist.com/mailman/listinfo/harbourusers
Consultazione archivi:
http://www.matrixlist.com/pipermail/harbourusers/
--------------------------
Saluti.
Marco Braida