Ce face Math.signum
Math.signum(x) returnează -1.0 pentru numere negative, 1.0 pentru pozitive și 0.0 (cu semnul lui zero) pentru zero. Pentru NaN returnează NaN. Rezultatul este double; pentru întregi există Integer.signum.
Math.copySign(valoare, semn) returnează valoarea absolută a primului argument cu semnul celui de-al doilea: copySign(5, -2) este -5.0. Este o formă scurtă pentru Math.abs(valoare) * Math.signum(semn), care merge corect și pentru zero.
Parametri
| Parametru | Descriere |
|---|---|
d |
Numărul al cărui semn îl afli. |
valoare |
Pentru copySign: mărimea. |
semn |
Numărul de la care se ia semnul. |
Ce returnează
Un double.
Exemple
Exemplul 1: Semnul unor numere
public class Main {
public static void main(String[] args) {
double[] valori = {-12.5, 0.0, 7, -0.0};
for (double v : valori) {
System.out.println(v + " -> " + Math.signum(v));
}
System.out.println(Math.copySign(5, -2));
System.out.println(Math.copySign(-3.5, 1));
}
}
Rezultat
-12.5 -> -1.0
0.0 -> 0.0
7.0 -> 1.0
-0.0 -> -0.0
-5.0
3.5
Exemplul 2: Evoluția unui sold
public class Main {
public static void main(String[] args) {
double[] variatii = {150.0, -42.5, 0.0, -300.0};
String[] text = {"scădere", "fără schimbare", "creștere"};
for (double v : variatii) {
int index = (int) Math.signum(v) + 1;
System.out.println(v + " lei: " + text[index]);
}
}
}
Rezultat
150.0 lei: creștere
-42.5 lei: scădere
0.0 lei: fără schimbare
-300.0 lei: scădere
Greșeli frecvente
- Atribui
Math.signum(x)unuiintfără conversie: returneazădouble. Pentru întregi foloseșteInteger.signum(n).
Comenzi înrudite
Math.abs: Returnează valoarea absolută (fără semn) a unui număr; absExact aruncă excepție în cazul special al valorii minime.Integer.compare: compare() compară două int-uri (negativ, 0, pozitiv); max, min și sum sunt variante scurte pentru referințe la metode.Math: Clasa cu funcții matematice gata făcute: rotunjiri, puteri, radicali, trigonometrie, minim/maxim și calcule întregi sigure.