1

我正在努力弄清楚如何将像“15:45”这样的字符串转换为像15.45这样的双精度,我以前遇到过.toString()类似的方法并且正在寻找一种类似的方法来将字符串转换为双精度,但是那里有几个问题,我需要弄清楚如何将:.插入双倍的地方。

这是我想使用它的地方。

if(westOne > (takeOff.firstInQueue().time)) {}

目前westOne是一个字符串,就像double我假设我需要创建自己的方法来让它工作,这样我就可以在它的末尾应用它?takeOff.firstInQueue().time"16.15"

4

3 回答 3

7

您可以简单地:

myDouble = Double.parseDouble(myStr.replace(":", "."));

如果这真的是你想要的,这将替换:.并且String x:y将是double x.y


编辑

如果你想增加 5 分钟的时间,你可以添加0.05精度并将其转换回字符串,但这不是一个好方法,因为:

  • 您应该处理诸如14:55添加0.05将导致的情况14.6
  • 以及诸如14:45添加0.05将导致的情况14.5(No 0after 5)。

如果您只想5在时间上增加分钟,您可以使用SimpleDateFormatand Calendar

String myStr = "17:23";
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
Date date = df.parse(myStr ); 
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MINUTE, 5);
myStr = dateFormat.format(calendar.getTime()); //Now myStr will be 17:28
于 2013-11-03T07:33:12.083 回答
4

我认为这行得通;

String value;
double value1;
value = String.replaceAll(":",".") // Converts the 15:45 to 15.45
value1 = Double.parseDouble(value) // Converts the 15.45 to a double value.
于 2013-11-03T07:40:00.853 回答
0
String timevalue = "15:45";
Double pointvalue = Double.parseDouble(timevalue.replace(':', '.'));
//Not double quote like the previous answer because it takes a char as a parameter and not a string
于 2013-11-03T07:48:03.017 回答