Zum Beispiel, %11.2lf
in C++ wird %11.2f
auf Java. Wie wäre es mit dem Langformat?
C++-Äquivalent von %ld in Java für String.format()
Milli
Andrzej Doyle
Wie Sie vielleicht herausgefunden haben, ist es nicht notwendig, die anzugeben l
Flagge. Entsprechend die Dokumenteeine Dezimalzahl wird durch angegeben d
genau wie in C++. Die Antwort ist also gerecht %d
.
-
%d würde nicht ausreichen, wenn der zu druckende Wert lang ist. In diesem Fall müssen Sie es parsen.
– Milli
6. Januar 2010 um 8:47 Uhr
-
@Milli: Obwohl ich mir beim ersten Satz nicht sicher bin (glaube nicht, dass Vorzeichen eine Überlegung sind), habe ich gerade experimentell bestätigt, dass %d Longs korrekt formatieren wird!
– Carl Smotricz
6. Januar 2010 um 8:51 Uhr
-
Du hast Recht! Mein Fehler.. Ich hatte auch String in derselben Anweisung mit long.. Der Fehler wurde durch %d %d verursacht, obwohl es %d %s hätte sein sollen. Danke Andrzej!
– Milli
6. Januar 2010 um 8:58 Uhr
-
@CarlSmotricz ist richtig, Signiertheit hat nichts damit zu tun. Ich habe die Frage aufgeräumt, um das zu entfernen.
– Eloff
6. April 2014 um 13:10 Uhr
-
String.format() löst java.util.UnknownFormatConversionException zur Laufzeit aus, wenn Sie das ‘l’-Flag mit dem ‘d’-Flag verwenden (z. B. %ld) (auf Java 7 demonstriert).
– Sdenham
1. Dezember 2014 um 17:56 Uhr
Verwenden %d
für Dezimalzahlen (long, int). Es funktioniert in Ordnung. Z.B:
System.err.println(String.format("%d", 193874120937489387L));
… wird gut drucken. Lesen Sie weiter java.util.Formatter
für mehr Details. %d
wird ein nehmen long
Kein Problem.
-
FUNKTIONIERT PERFEKT!!
– Rahul Rastogi
8. Februar 2017 um 9:21 Uhr