Einfache Weise, zu überprüfen, ob double-Wert ist größer als null
Ich habe eine double-variable(employeeSalary) und ich möchte, um zu überprüfen, ob dieser Wert größer als(>) null(0). Ich denke, der kann sehr naive Art und Weise, um dieser code zu schreiben, aber ich bin nicht sicher, ob für Doppel - Daten Art das ist richtige Weise zu schreiben.
if(employeeSalary > 0){
//Employee salary is greater than zero.
}else{
//Employee salary is less than or equal to zero.
}
Kann bitte jemand mir sagen, ob dieser Ansatz funktioniert?
Haben Sie es ausprobiert? Hat es funktioniert?
sicherlich funktioniert es.
Sollte dies funktionieren, aber wenn Sie wirklich wollen, um volle zu gehen verbose Java könnte man die statische Methode
Im positiven Fall, die Bedeutung der Betreiber
sicherlich funktioniert es.
Sollte dies funktionieren, aber wenn Sie wirklich wollen, um volle zu gehen verbose Java könnte man die statische Methode
Double.compare(employeeSalary, 0.0) > 0
oder Sie wissen, verwenden Sie einfach employeeSalary > 0.0
wenn Sie besorgt sind, dass 0 != 0.0
Im positiven Fall, die Bedeutung der Betreiber
>
ist genau wie erwartet, employeeSalary > 0
ist true
wenn employeeSalary
größer ist als 0
. Natürlich, die Bedingung ist erfüllt, wenn employeeSalary==0.000000000000000000000000001
und es ist nicht, wenn employeeSalary
ist nur 0.000000000000000000000000001
kürzer als die. Fragen Sie sich, ob dieser Unterschied wirklich zählt und kommt zu dem Schluss, dass Sie sollten verwenden Sie niemals double
für ein Gehalt.InformationsquelleAutor Pirate_Jack | 2016-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es Gefahrenbereiche beim Vergleich
double
Werte aber mit>
oder<
ist nicht ein problem. Ihr code sollte aber funktionieren perfekt.Sollten Sie jedoch vorsichtig sein, mit
==
da gibt es viele Grenzfälle, in denen eine Zahl zu sein scheint, dass0
ist nicht (z.B.-0.0
) und eine Zahl ist effektiv null (z.B.0.0000...001
), aber der Vergleich mit== 0
fehl.InformationsquelleAutor OldCurmudgeon
Wenn Sie nur wollen, um zu vergleichen, primitive, können Sie sicherlich etwas zu tun:
Beachten Sie, dass, wenn employeeSalary ist ein double (primitive), dann sollten Sie wirklich vergleichen Sie dies mit anderen double statt int.
Können Sie auch ein paar Doppel-statischen Methoden, das gleiche zu tun
Finden Sie unter: https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#compare(double,%20double)
employeeSalary > 0.0
besser sein, alsemployeeSalary > 0
? Und warum empfehlen SieDouble.compare(employeeSalary, Double.valueOf(0.0)) > 0
?! Die Methode hatDouble.compare
hat etwas andere Semantik als>
, so sollten Sie erklären Ihnen, wenn Sie denken, das ist ganz nützlich, ansonsten nicht zu empfehlen. Und Boxen das zweite argument überDouble.valueOf(0.0)
nur zu lassen, sein auto-ohne Verpackung direkt danach, macht überhaupt keinen Sinn.InformationsquelleAutor Michael Peacock