将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”是一个变量。 “号码”是你正在寻找的最终号码。