Nasıl dönüştürebilirsiniz Stringgibi "12.34"bir etmek doubleJava?
Nasıl dönüştürebilirsiniz Stringgibi "12.34"bir etmek doubleJava?
Yanıtlar:
Sen kullanabilirsiniz Double.parseDouble()bir dönüştürmek için Stringbir için double:
String text = "12.34"; // example String
double value = Double.parseDouble(text);
Durumunuz için istediğiniz gibi görünüyor:
double total = Double.parseDouble(jlbTotal.getText());
double price = Double.parseDouble(jlbPrice.getText());
double total = Double.parseDouble(jlbTotal.getText());
double total = Double.parseDouble(jlbTotal.getText().replaceAll("[^0-9.]", ""));- bu temelde bir sayı veya .hiçbir şey olmayan tüm karakterlerin yerini alır ve yalnızca sayı ve ondalık noktasını ayrıştırır.
Doubleİlkel tip doublekullanım yerine sınıf sonucunu ararken burada çekenler için Double.valueOf(String).
Dizeyi ondalık değerlere ayrıştırmada sorun yaşıyorsanız, sayıdaki "," yerine "."
String number = "123,321";
double value = Double.parseDouble( number.replace(",",".") );
Bir dizeyi tekrar ikiye dönüştürmek için aşağıdakileri deneyin
String s = "10.1";
Double d = Double.parseDouble(s);
ParseDouble yöntemi istenen efekti ve Double.valueOf () yöntemini elde eder.
double d = Double.parseDouble(aString);
Bu, aString dizesini d çiftine dönüştürmelidir.
Kullanın new BigDecimal(string). Bu, daha sonra doğru hesaplamayı garanti edecektir.
Genel bir kural olarak - her zaman BigDecimalpara gibi hassas hesaplamalar için kullanın .
Misal:
String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);
Dize değerlerini yalnızca Double kullanarak ayrıştırmanız gerekir
String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);
Robertiano'dan alıntıya tekrar atıfta bulunmak - çünkü bu çok yönlü ve yerelleştirmeye uyarlanmış versiyon. Tam bir yazıyı hak ediyor!
Başka seçenek:
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols sfs = new DecimalFormatSymbols();
sfs.setDecimalSeparator(',');
df.setDecimalFormatSymbols(sfs);
double d = df.parse(number).doubleValue();
String double_string = "100.215";
Double double = Double.parseDouble(double_string);
Başka bir yol daha var.
Double temp = Double.valueOf(str);
number = temp.doubleValue();
Double bir sınıf ve "temp" bir değişkendir. "sayı", aradığınız son sayıdır.
Yapacağım şey bu
public static double convertToDouble(String temp){
String a = temp;
//replace all commas if present with no comma
String s = a.replaceAll(",","").trim();
// if there are any empty spaces also take it out.
String f = s.replaceAll(" ", "");
//now convert the string to double
double result = Double.parseDouble(f);
return result; // return the result
}
Örneğin, "4 55,63. 0" dizesini girersiniz, çıkış 45563.0 değerinin iki katı olur
Double.parseDouble()Çevreleyen try/catchblok olmadan kullanmak NumberFormatException, giriş çift dizesinin geçerli bir biçime uymamasına neden olabilir .
Guava, nullbunun için Dizenizin ayrıştırılamaması durumunda dönen bir yardımcı yöntem sunar .
Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleString);
Çalışma zamanında, bozuk dize giriş yapılması sonucunda elde nulltahsisvalueDouble
U int gerektiğinde herhangi bir Dize numarasını ikiye dönüştürmek için bu sadece num ve num2 veri türünü int dönüştürmek için kullanılır; Eng ile herhangi bir dize çift için tüm davaları aldı: "Bader Qandeel"
public static double str2doubel(String str) {
double num = 0;
double num2 = 0;
int idForDot = str.indexOf('.');
boolean isNeg = false;
String st;
int start = 0;
int end = str.length();
if (idForDot != -1) {
st = str.substring(0, idForDot);
for (int i = str.length() - 1; i >= idForDot + 1; i--) {
num2 = (num2 + str.charAt(i) - '0') / 10;
}
} else {
st = str;
}
if (st.charAt(0) == '-') {
isNeg = true;
start++;
} else if (st.charAt(0) == '+') {
start++;
}
for (int i = start; i < st.length(); i++) {
if (st.charAt(i) == ',') {
continue;
}
num *= 10;
num += st.charAt(i) - '0';
}
num = num + num2;
if (isNeg) {
num = -1 * num;
}
return num;
}
String s = "12.34";
double num = Double.valueOf(s);
Double.parseDouble ();
String num = "10.1";
Double x = Double.parseDouble(num);