Richtige Weg, um konvertieren von BigDecimal, String
Warum sollte ich verwenden valueOf()
?
warum kann ich die implizite Konvertierung?
Code-Snippet ist unten dargestellt:
BigDecimal xmlvalue = new BigDecimal(12.3434379328948927894789237);
String str1 = String.valueOf(xmlvalue); //Option 1
String str2 = "" + xmlvalue; //Option 2
Was ist das problem mit Möglichkeit 2? Warum nicht auch Ihr es nutzen?
Warum nicht String str = xmlvalue.toString()?
Überprüfen Sie den link unten <stackoverflow.com/questions/13900204/bigdecimal-to-string>
Warum nicht String str = xmlvalue.toString()?
Überprüfen Sie den link unten <stackoverflow.com/questions/13900204/bigdecimal-to-string>
InformationsquelleAutor cbheema | 2013-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
BigDecimal#toString
konvertieren BigDecimal, stringString.valueOf()
. das ist nicht das konvertieren in BigDecimalInformationsquelleAutor anubhava
können Sie die
toString()
MethodeInformationsquelleAutor grexter89
Warum würden Sie jemals verwenden Sie manuell
"" + string
für eine Umwandlung in String? Ich weiß, dass viele Entwickler benutzen, aber für mich scheint es nur wie ein Vorteil der Java-Entwickler-Freundlichkeit und die Tatsache, dass es macht eine Menge Zeug(terminus technicus "conversions") automatisch. In anderen Worten, es ist ein fauler Weg um und ich weiß nicht, wie die Vergewaltigung von Java, wennString.valueOf()
implementiert ist genau für diesen Zweck.Technische Antwort:
Wenn
a + ""
verwendet wird, mit einem ganzzahligena
. Es verhält sich wie folgt:Dadurch werden zwei String-Objekte, während
String.valueOf(a)
verwendet nur eine.InformationsquelleAutor Dropout
Aus zwei Gründen:
String.valueOf
besser vermittelt Ihre Absicht: Sie offensichtlich versuchen, um die String-Repräsentation eines BigDecimal-Wert; missbrauchen String-Verkettung erfordert ein wenig mehr geistige Anstrengung zu verstehen, was Sie versuchen zu tunInformationsquelleAutor helpermethod
Verwendung von BigDecimal nicht zurück zu bringen die Präzision verloren in
double
Wenn Sie mehr als 15 Ziffern, die Genauigkeit, die Sie brauchen, um die Verwendung von String-und BigDecimal.Wenn Sie eine
double
können Sie genauso gut tunInformationsquelleAutor Peter Lawrey
Den String#valueOf verwenden Double#toString Methode in diesem Fall.
Ist denke ich besser verwenden BigDecimal#toString Methode. Zum Beispiel, wenn Sie möchten, konvertiert diese Daten, ist es besser, verwenden Sie diese Methode toString.
InformationsquelleAutor herry
Könnte man argumentieren, dass es besser lesbar zu verwenden
valueOf(x)
als"" + x
. Intern wird wiedertoString
Sie können aber auch Umgang mit null-Werten (wonull.toString()
werfen wirdNullPointerException
).In der Theorie die Leistung des
valueOf(x)
sollte besser sein als"" + x
, als die letztere verwendet eineStringBuilder
innen, die führen kann zu einigen overhead.Wenn Sie wissen, dass Ihre
BigDecimal
ist nicht null (wie in deinem Beispiel), sollten Sie nur verwendentoString
.By the way, seien Sie vorsichtig mit der
BigDecimal(double)
Konstruktor. Der sicherere Weg istnew BigDecimal("12.3434379328948927894789237")
in deinem Beispiel. Der Grund, warumBigDecimal(double)
ist unpredicable erklärt seine Javadoc-Kommentar.InformationsquelleAutor Philipp Claßen