Wie konvertiere ich wissenschaftliche Notation zu regulärer int Zum Beispiel: 1.23E2 ich es Dank 123Java: Konvertieren Sie die wissenschaftliche Notation regelmäßig int
konvertieren möchte.
Wie konvertiere ich wissenschaftliche Notation zu regulärer int Zum Beispiel: 1.23E2 ich es Dank 123Java: Konvertieren Sie die wissenschaftliche Notation regelmäßig int
konvertieren möchte.
Wenn Sie Ihren Wert als String haben, könnten Sie
int val = new BigDecimal(stringValue).intValue();
Ich habe so etwas wie: String val = new BigDecimal (stringValue) .toPlainString(); seit ich den Wert zurück als String wollte. Danke, dass Sie mich auf BigDecimal verwiesen haben. – user305210
Genau das, was ich gesucht habe, danke – prolink007
Kampf mit einigen wissenschaftlichen Notation-formatierten Wert aus Excel (mit POI), die ein Datum im Format "JJJJMMTD" sein. Das war sehr hilfreich! – Alfabravo
Sie können es einfach zu gieße int
wie:
double d = 1.23E2; // or float d = 1.23E2f;
int i = (int)d; // i is now 123
Ich habe es tatsächlich versucht, bevor ich die Frage hier auf stackoverflow gestellt habe, aber aus irgendeinem Grund habe ich mich entschieden, es nicht zu benutzen, da ich Angst hatte, Informationen während dieser Konvertierung zu Double und dann zu Int zu verlieren. Aber ich denke, es ist ein gültiger Weg. – user305210
Dies ist nicht gültig. Sie haben recht, wenn Sie denken, dass einige Informationen verloren gehen. Dies liegt daran, dass Double 8 Byte und Ints 4 Byte sind. Nehmen Sie dies als Beispiel und beachten Sie den großen Unterschied nach dem Gießen. \t \t 'doppelt dlow = Double.parseDouble (" - 2299999999 "); \t \t int ilow = (int) dlow; \t \t System.out.println ("dlow =" + String.valueOf (dlow)); \t \t System.out.println ("(int) dlow =" + String.valueOf (ilow)); \t \t System.out.println ("Ilow-Dlow =" + String.valueOf (Ilow-Dlow)); '' Dlow -2.299999999E9 = (int) Dlow = -2147483648 Ilow-Dlow = 1.52516351E8 ' – James
verwende ich nehme an, dass Sie es als String haben.
Werfen Sie einen Blick auf die DecimalFormat Klasse. Die meisten Leute verwenden es zum Formatieren von Zahlen als Strings, aber es hat tatsächlich eine Parse-Methode, um anders herum zu gehen! Sie initialisieren es mit Ihrem Muster (siehe Tutorial) und rufen dann parse() für die Eingabezeichenfolge auf.
Auschecken DecimalFormat.parse().
Beispielcode:
DecimalFormat df = new DecimalFormat();
Number num = df.parse("1.23E2", new ParsePosition(0));
int ans = num.intValue();
System.out.println(ans); // This prints 123
Sie können auch so etwas wie dieses verwenden.
(int) Double.parseDouble("1.23E2")
Haben Sie es als 'String'? – Bozho
Haben Sie die Zeichenfolge "1.23E2" oder einen "float", der gleich 1,23e2 ist? – msw