Newsgroup: it.comp.java
Titolo: Problema con BigInteger

 
Non avendo mai usato i BigIntegers sulle prime ho pensato 
ad uno scherzo.. Allora ho provato a compilarlo  (30 secondi
su un HP) e ho visto che il risultato era proprio 5...
Ho iniziato a scartabellare tra le API ed ecco la soluzione:
 add(BigInteger) 
    Returns a BigInteger whose value is (this + val). 
 La add non modifica il BigInteger su cui applichi l'operazione
 ma te ne ritorna uno nuovo. Quindi e' logico che "a" resti "a"
 e "b" resti "b".
 L'istruzione a.add(b) equivale a "a+b" e non a "a+=b".
 Tra parentesi non pensate che sarebbe comodo in Java
 l'overloading degli operatori? Esistono gia' delle estensioni in
 tal senso (il compilatore JUMP).
 Il listato corretto e':
import java.math.*;
public class provaBig {
        public static void main (String[] args) {
                BigInteger a = new BigInteger("5");
                BigInteger b = new BigInteger("9");
                BigInteger c = a.add(b);
                System.out.println("Risultato = "+c);
        }
}
Saluti
-- 
---------------------------------------------------------
 Fabio Insaccanebbia      
 E-mail: 
in...@juliet.sci.univr.it
 
in...@easynet.it
---------------------------------------------------------

 tal senso (il compilatore JUMP).
La Sun ha "abolito" l'overloading per rendere piu' leggibili i
programmi.
ciao
as

 programmi.
Ad eccezzione della classe String in cui sono stati sovracaricati
gli operatori '+' e '=' in modo da rendere possibili le assegnazioni
del tipo :
String a = b + c; 
Ciao...
+---------------------------+
| CLAUDIO DRIUSSI           |
| email: 
cldr...@swit.net
 |
| 
http://www.swit.net/csoft
 |
+---------------------------+

 +---------------------------+
P.S.:
 Double a,b,c;
 .. varie inizializzazioni
 c=new Double(a.doubleValue()+b.doubleValue());
 ok.. non oserei scrivere mai questa cosa.
 Piuttosto scrivo
 Double a,b,c;
 double a_d,b_d;
 a_d=a.doubleValue();
 b_d=b.doubleValue();
 c=new Double(a_d+b_d);
 che non e' orrendo come ho scritto prima :-)


 [...]
Ai tempi dell'uscita del primo JDK si discusse per settimane su
i pro e i contro dell'overloading in Java rispetto a C++ - su
comp.lang.java, dato che il gruppo italiano non esisteva ancora.
Ora quel gruppo e' stato spezzato in vari sottogruppi ma su qualche
archivio news dovresti trovare ancora le discussioni dell'epoca.
Saluti,
    CS
--
dr. Cristiano Sadun - Software Engineering and Consulting
***********Remove NOSPAM from address to reply***********
*********************************************************
"God is Real - unless declared Integer"

 che non e' orrendo come ho scritto prima :-)
In effetti la mia amata prof di Informatica mi ha "inculcato" il
disprezzo per "la merda che sale mentre si sta scrivendo codice"... ma
a dire la verita' io vivo piuttosto bene anche senza l'overloading!
Ciao
as

  Number cosi' come hanno fatto per le stringhe:
credo che per le stringe sia stato usato una spece di preprocessore
contenuto
direttamente nel compilatore e che sia stato fatto data la frequenza di
uso
degli operatiori con le stringe e la loro non ambiguita'.
se fossero sovraccaricati gli operatori anche per le classi numeriche 
probabilmente ci sarebbe ambiguita' di riconoscimento tra classi e
variabili
numeriche, ad esempio:
Double a;
double b;
a += b;
a colpo d'occhio e' difficile individuare se a e' una classe o una
variabile.
Ciao...
