Un po' di matematica

Da Head First Java O'Reilly, capitolo 10. Si parla di variabili di istanza e metodi statici e, come esempio, della classe Math.

Math ha solo metodi statici. Tra l'altro il suo costruttore é dichiarato privato e perciò non é possibile instanziare oggetti di questa classe.

Tra i metodi citati:

Math.random(): ritorna un double in [0, 1)

public void doRandom() {
System.out.println("a random number:" + Math.random());

int[] result = new int[5];
for(int i = 0; i < 10000; ++i) {
result[(int)(Math.random() * 5)]++;
}
System.out.println("a few random numbers in [0, 4]");
for(int i = 0; i < 5; ++i) {
System.out.println(i + ": " + result[i]);
}
}

Math.abs(): ritorna un float, double, int o long che é il valore assoluto dell'argomento passato

public void doAbs() {
int i = Math.abs(-12);
System.out.println("absolute value of negative int: " + i);

long l = Math.abs(-12L);
System.out.println("absolute value of negative long: " + l);

float f = Math.abs(-12.24f);
System.out.println("absolute value of negative float: " + f);

double d = Math.abs(-12.24);
System.out.println("absolute value of negative double: " + d);
}

Math.round(): ritorna un int se il valore passato come argomento e float, un long se si passa un double, arrotondato al valore intero più vicino

public void doRound() {
int i = Math.round(12.24f);
System.out.println("rounding a float: " + i);

long l = Math.round(-12.24);
System.out.println("rounding a double: " + l);
}

Math.min(): ritorna il minore tra i due argomenti passati (di tipo int, long, float, o double)

public void doMin() {
double d = Math.min(12.34, -2.5);
System.out.println("min of two doubles: " + d);

float f = Math.min(12.34f, -2.5f);
System.out.println("min of two floats: " + f);

long l = Math.min(12L, 2L);
System.out.println("min of two longs: " + l);

int i = Math.min(12, 2);
System.out.println("min of two ints: " + i);
}

Math.max(): ritorna il maggiore tra i due argomenti passati

public void doMax() {
double d = Math.max(12.34, -2.5);
System.out.println("max of two doubles: " + d);

float f = Math.max(12.34f, -2.5f);
System.out.println("max of two floats: " + f);

long l = Math.max(-12L, 2L);
System.out.println("max of two longs: " + l);

int i = Math.max(-12, 2);
System.out.println("max of two ints: " + i);
}

Nessun commento:

Posta un commento