将String转换为Java中的double

我想将我的double值更改为String

 if((e.getSource() == jBook)) { String name = jlbName.getText(); String date = jlbDateProduce.getText(); String time = jr1.getText(); int number = (Integer.parseInt(jtfNoOfTicket.getText().trim())); String total = jlbTotal.getText(); String price = jlbPrice.getText(); //Passing ticketReservation frame = new ticketReservation( name, date, time, price, total, String.valueOf(number)); } 

在另外一类中,我需要用这个值来计算总数 。 有没有什么方法可以将String转换为double

您可以使用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()); 

如果在将字符串解析为十进制值时遇到问题,则需要将数字中的“,”替换为“。”。


 String number = "123,321"; double value = Double.parseDouble( number.replace(",",".") ); 
 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); 

要将字符串转换回double,请尝试以下操作

 String s = "10.1"; Double d = Double.parseDouble(s); 

parseDouble方法将达到所需的效果,Double.valueOf()方法也会如此。

您只需要使用Double解析字符串值

 String someValue= "52.23"; Double doubleVal = Double.parseDouble(someValue); System.out.println(doubleVal); 

再次引用Robertiano的话 – 因为这是迄今为止最通用和最适合本地化的版本。 它值得一个完整的职位!

另一种选择:

 DecimalFormat df = new DecimalFormat(); DecimalFormatSymbols sfs = new DecimalFormatSymbols(); sfs.setDecimalSeparator(','); df.setDecimalFormatSymbols(sfs); double = df.parse(number).doubleValue(); 
 String double_string = "100.215"; Double double = Double.parseDouble(double_string); 

还有另一种方法。

 Double temp = Double.valueOf(str); number = temp.doubleValue(); 

Double是一个类,“temp”是一个变量。 “号码”是你正在寻找的最终号码。