जवाबों:
आप उपयोग कर सकते हैं Double.parseDouble()
एक कन्वर्ट करने के लिए String
एक करने के लिए double
:
String text = "12.34"; // example String
double value = Double.parseDouble(text);
आपके मामले में ऐसा लगता है कि आप चाहते हैं:
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.]", ""));
- यह मूल रूप से सभी वर्णों को बदलता है जो एक संख्या या .
कुछ भी नहीं हैं, केवल संख्या और दशमलव बिंदु को पार्स किया जाना है।
Double
आदिम प्रकार के double
उपयोग के बजाय कक्षा के परिणाम की खोज करते समय यहां लालच देने वालों के लिए Double.valueOf(String)
।
यदि आपको दशमलव मानों को स्ट्रिंग करने में समस्या है, तो आपको "," संख्या में "" पर प्रतिस्थापित करना होगा।
String number = "123,321";
double value = Double.parseDouble( number.replace(",",".") );
एक स्ट्रिंग को वापस डबल में बदलने के लिए, निम्नलिखित प्रयास करें
String s = "10.1";
Double d = Double.parseDouble(s);
ParseDouble विधि वांछित प्रभाव को प्राप्त करेगी, और इसलिए Double.valueOf () विधि होगी।
double d = Double.parseDouble(aString);
इसे स्ट्रिंग aString को डबल d में बदलना चाहिए।
का उपयोग करें new BigDecimal(string)
। यह बाद में उचित गणना की गारंटी देगा।
अंगूठे के एक नियम के रूप में - हमेशा BigDecimal
धन की तरह संवेदनशील गणना के लिए उपयोग करें ।
उदाहरण:
String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);
आपको केवल डबल का उपयोग करके स्ट्रिंग मानों को पार्स करने की आवश्यकता है
String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);
रॉबर्टियानो के ऊपर फिर से उद्धरण का हवाला देते हुए - क्योंकि यह अब तक का सबसे बहुमुखी और स्थानीयकरण अनुकूली संस्करण है। यह एक पूर्ण पोस्ट के योग्य है!
एक अन्य विकल्प:
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);
दूसरा रास्ता भी है।
Double temp = Double.valueOf(str);
number = temp.doubleValue();
डबल एक वर्ग है और "अस्थायी" एक चर है। "संख्या" अंतिम संख्या है जिसे आप खोज रहे हैं।
क्या यही मुझे करना होगा
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
}
उदाहरण के लिए आप स्ट्रिंग "4 55,63। 0" इनपुट करते हैं, आउटपुट डबल नंबर 45563.0 होगा
Double.parseDouble()
आसपास के try/catch
ब्लॉक का उपयोग किए बिना संभावित कारण हो सकता NumberFormatException
है इनपुट डबल स्ट्रिंग एक वैध प्रारूप के अनुरूप नहीं था।
अमरूद इसके लिए एक उपयोगिता विधि प्रदान करता है जो null
आपके स्ट्रिंग के पार्स होने की स्थिति में नहीं लौटती है।
Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleString);
क्रम में, एक विकृत स्ट्रिंग इनपुट पैदावार को null
सौंपाvalueDouble
इसका उपयोग किसी भी स्ट्रिंग संख्या को डबल में बदलने के लिए किया जाता है, जब यू की आवश्यकता होती है, बस डेटा प्रकार को num और num2 से int में परिवर्तित करें; Eng के साथ किसी भी स्ट्रिंग डबल के लिए सभी मामलों को लिया: "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);