-
Che stampa a voiScritto dail 2013-01-10 02:09:07.0 alle 2013-01-10 02:09:07.0Trollate totali: 2001questo codicillo GO?
package main import "fmt" func main() { ε := 1.0 for (ε + 1) > 1 { ε = ε * 0.5 } fmt.Println(ε) }
A me 1.1102230246251565e-16
In Python:e = 1 while (1+e) > 1: e = e*0.5 e
In javascript:var e=1; while ((e+1)>1) {e = e*0.5} alert(e);
In codice RPN HP:« 1 WHILE DUP 1 + 1 > REPEAT .5 * END »
Per curiosità nel caso della mia HP48GX viene 3.63797880705E-12
(Spero che il codice per la RPN sia giusto, è da parecchio che non ci programmo però il risultato pare essere credibile)
**Modificato dall'autore il 10.01.2013 02:27**-
-
Re: Che stampa a voiScritto daaltgutente che non utieneil 2013-01-10 16:32:31.0 alle 2013-01-10 16:32:31.0Trollate totali: 11540>

anch'io.
Forse un tentativo di capire qual'e` la precisione nei conti in virgola mobile?
Io posso provare solo il javascript, l'altra roba non ce l'ho.-
Re: Che stampa a voiScritto daaltgutente che non utieneil 2013-01-10 16:36:34.0 alle 2013-01-10 16:36:34.0Trollate totali: 11540> >

>
>
anch'io.
> Forse un tentativo di capire qual'e` la precisione nei conti in virgola mobile?
> Io posso provare solo il javascript, l'altra roba non ce l'ho.
Torna sempre il risultato che hai scritto te, 1.1102 eccetera alla meno 16. Sia in Chrome che in Opera, il che contraddice la mia impressione che Opera facesse i conti in virgola mobile con degli short float su sistemi a 32 bit.
-
-
-
Re: Che stampa a voiScritto daavvelentaniCubicolarioil 2013-01-10 16:43:35.0 alle 2013-01-10 16:43:35.0Trollate totali: 18184Scritto da: Renton Thurston
> questo codicillo GO?
>
>> package main > import "fmt" > > func main() { > ε := 1.0 > for (ε + 1) > 1 { > ε = ε * 0.5 > } > fmt.Println(ε) > } >
>
> A me 1.1102230246251565e-16
stessa cosa
>
> In Python:
>> e = 1 > while (1+e) > 1: > e = e*0.5 > e >
1.11022302463e-16
>
> In javascript:
>> var e=1; while ((e+1)>1) {e = e*0.5} alert(e); >
come go.
I think happiness is love
- Vladimir Putin-
Re: Che stampa a voiScritto dail 2013-01-10 16:57:15.0 alle 2013-01-10 16:57:15.0Trollate totali: 2001Scritto da: avvelentani
> Scritto da: Renton Thurston
> > questo codicillo GO?
> >
> >> > package main > > import "fmt" > > > > func main() { > > ε := 1.0 > > for (ε + 1) > 1 { > > ε = ε * 0.5 > > } > > fmt.Println(ε) > > } > >
> >
> > A me 1.1102230246251565e-16
>
> stessa cosa
>
> >
> > In Python:
> >> > e = 1 > > while (1+e) > 1: > > e = e*0.5 > > e > >
>
> 1.11022302463e-16
Probabilmente hai dato un "print e" anziché semplicemente e, anche a me usando print ha approssimato il risultato:>>> e = 1 >>> while (1+e) > 1: ... e = e*0.5 ... >>> e 1.1102230246251565e-16 >>> print e 1.11022302463e-16
>
> >
> > In javascript:
> >> > var e=1; while ((e+1)>1) {e = e*0.5} alert(e); > >
>
> come go.
>
Mi chiedo se tutti i proci nei PC odierni danno lo stesso risultato. E Java che ha una sua rappresentazione interna indipendente dal microprocessore sottostante?
-
-