我相信这更多的是与我比parseFloat的一部分的任何不符措施的行为的理解,但我承担......的Java parseFloat似乎是不一致的作用
,如果我有输入格式“IDCODE:(3.5)”,其中IDCODE可能是几个不同的预定义字符串,并且保证总是有括号,并且还保证有括号内的数字。
我试图消化所有的输入到IDCODE桶和总值,因此需要抓住括号之间的任何东西,并把它变成一个浮点数,以便我可以总结它
为什么下面不起作用?
Float tot = 0;
String idCode = "";
while(!input.isEmpty())
{
idCode = GetIdCode(input);
tot = tot + Float.parseFloat(input.substring(
input.indexOf("(", input.indexOf(idCode)) + 1,
input.indexOf(")", input.indexOf(idCode))));
}
(抛出一个数字格式除外)
在以下没有工作
Float tot = 0;
String idCode = "";
while(!input.isEmpty())
{
idCode = GetIdCode(input);
String temp = input.substring(
input.indexOf("(", input.indexOf(idCode)) + 1,
input.indexOf(")", input.indexOf(idCode)));
tot = tot + Float.parseFloat(temp);
}
这似乎很奇怪,我 - 是什么,我已经被保存到一个临时变量导致的差异?
什么是输入异常时抛出。 – paxdiablo 2009-11-25 06:00:26
为什么这些循环中的任何一个(除非失败)都只是永远循环?你永远不会改变'input',所以如果循环经过一次,它永远不会结束。这表明你已经在每种情况下删除了一些代码,并且你删除的代码可能包含解释为什么一个表单失败并且另一个成功! - ) – 2009-11-25 06:01:39
对不起 - 只是代码的一部分 - 不应该把在那里的结束大括号 - 在这两种情况下输入是相同的 - 这就是为什么我很困惑 – hgh 2009-11-25 06:03:50