Ich habe ein einfaches Problem zu lösen, ich habe eine Variable mit einem Doppel, ich lese in einem anderen Doppel von Benutzereingabe. Ich muss die beiden Zahlen addieren und das Ergebnis auf den Bildschirm drucken. In anderen Sprachen, in denen ich gearbeitet habe, würde die Tatsache, dass es ein Doppel war, dazu führen, dass es mit einer Dezimalzahl gedruckt wird, auch wenn es eine ganze Zahl ist. In Javascript ist dies nicht der Fall.Drucken einer ganzen Zahl als Dezimal in Javascript ohne Rundung
var d = 2.0;
console.log(d) // out is 2
Ich kann es zwingen, eine Dezimalzahl zu drucken, indem toFixed()
verwenden, aber dann wird es gehen Ergebnisse anderen Eingang runden. Wenn das Ergebnis 2.0 ist, möchte ich, dass es "2.0" druckt und wenn das Ergebnis 2.345 ist, möchte ich, dass es "2.345" druckt.
Die Lösung, die ich jetzt habe, ist es in eine Zeichenfolge zu konvertieren, wenn es sich um eine ganze Zahl ist:
var d2 = 4.0
console.log((d2 % 1 == 0) ? d2+".0" : d2) // out is 4.0
Ich mag es fühlen muss eine bessere Möglichkeit, dies zu tun. Das erscheint mir sehr klobig. Ich habe nach Lösungen gesucht, aber alles, was ich bis jetzt gefunden habe, verwendet oder eine andere Rundung.
JavaScript hat nur eine Art von Nummer, also ist alles ein Doppel. Es ist egal, ob es eine ganze Zahl ist; Sie müssen Ihre Formatierung manuell vornehmen. – Tashi
In JavaScript gibt es weder Dezimal noch Double. Alles ist eine Nummer, was ziemlich verwirrend ist (und ziemlich anders als in den meisten Sprachen) – dirkk