Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - calcolatrice
Forum - C# / VB.NET - calcolatrice

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 13:44
Domenica, 23/08/2009
Stavo cercando di fare una calcolatrice simile a quella di Windows ma nn sono riuscito a capire come fa quest'ultima a usare numeri di enorme lunghezza (mi sembra 32 cifre). Credo che in VB.NET il tipo di numero che permette più cifre sia il Decimal ma comunque non raggiunge i livelli della calcolatrice di Windows. L'unica cosa che mi viene in mente è che sia stato creato un nuovo tipo di dati partendo, forse, da una stringa...
Qualcuno sa dirmi di più?

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 14:29
Domenica, 23/08/2009
Quello che dici tu è possibile, ma è giusto precisare alcune cose. Ammettendo che tu abbia un PC a 32 bit, puoi operare via hardware con numeri la cui rappresentazione in binario non superi le 32 cifre. Per "oltrepassare" questo limite, puoi fare tutto il lavoro da software, ma ciò comporta una minore velocità d'esecuzione.
Uno dei tipi che potresti sfruttare è appunto lo String, ma dovresti definire per bene gli operatori e i vari metodi e funzioni.
Se ho detto qualcosa di sbagliato, correggetemi pure.


"Se vuoi che una funzione di un programma non venga mai trovata, descrivila nella documentazione"
PM Quote
Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 15:00
Domenica, 23/08/2009
E' quello che è venuto in mente anche a me... non è che per caso qualcuno si è già preso la briga di implementare una classe che risponda alle mie esigenze:D?

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 15:09
Domenica, 23/08/2009
Io no, purtroppo. Comunque sei sicuro che la calcolatrice di Windows lavori con molte cifre? A quanto ricordo io, in questi casi utilizza la notazione scientifica.


"Se vuoi che una funzione di un programma non venga mai trovata, descrivila nella documentazione"
PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 15:52
Domenica, 23/08/2009
Per gli interi va benissimo Int64(32 cifre) mentre per i numeri a virgola mobile il decimal è ottimo(ha un'ottima precisione, chi te l'ha detto che non raggiunge i livelli della calcolatrice di Win?).


@Ruggy94:
La simulazione via sofware la fa già il framework, prendi l'Int64.

Ultima modifica effettuata da manvb.net il 23/08/2009 alle 15:55


"E' facile distruggere, la vera sfida è creare!"(cit. me)

"Ricordati chi sei, non permettere a nessuno di cambiarti, non perdere mai te stesso. Farai grandi cose nella vita."(cit. me)

double penetration; //ouch
PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 15:57
Domenica, 23/08/2009
Testo quotato

Postato originariamente da manvb.net:
La simulazione via sofware la fa già il framework, prendi l'Int64.


Si, hai ragione :D


"Se vuoi che una funzione di un programma non venga mai trovata, descrivila nella documentazione"
PM Quote
Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 20:03
Domenica, 23/08/2009
Testo quotato

Postato originariamente da manvb.net:

Per gli interi va benissimo Int64(32 cifre) mentre per i numeri a virgola mobile il decimal è ottimo(ha un'ottima precisione, chi te l'ha detto che non raggiunge i livelli della calcolatrice di Win?).




Non me l'ha detto nessuno... l'ho constatato da solo:
i decimal vanno da un valore massimo di 79228162514264337593543950335 a un minimo di -79228162514264337593543950335; se in vb.net provo a moltiplicare per 2 il numero 79228162514264337593543950335 mi dà un'eccezione mentre se lo faccio nella calcolatrice di windows è tutto ok, lo calcola senza problemi.

Ultima modifica effettuata da I)eathBringer il 23/08/2009 alle 20:05
PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 20:20
Domenica, 23/08/2009
Ho provato la calcolatrice di Linux ed in effetti consente di rappresentare numeri lunghissimi. Dopo un certo limite, utilizza la notazione scientifica (quindi ad esempio 9,96804955e+127), ma comunque il limite è molto alto.


"Se vuoi che una funzione di un programma non venga mai trovata, descrivila nella documentazione"
PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 20:58
Domenica, 23/08/2009
Usa un semplice Double.

Ultima modifica effettuata da manvb.net il 23/08/2009 alle 20:59


"E' facile distruggere, la vera sfida è creare!"(cit. me)

"Ricordati chi sei, non permettere a nessuno di cambiarti, non perdere mai te stesso. Farai grandi cose nella vita."(cit. me)

double penetration; //ouch
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo