У меня возникла странная проблема с BigDecimal.новый BigDecimal ("0") NumberFormatException
У меня есть метод синтаксического анализа следующим образом:
protected BigDecimal parseBigDecimalFromText(String text) {
Logger.info("parseBigDecimalFromText("+text+")");
return new BigDecimal(text);
}
Теперь, когда я запускаю мой тест код правильно работает.
@Test
public void parseBigDecimalFromZero() {
Logger.createLogger();
// given
String text = "0";
// when
BigDecimal bigDecimal = basicPage.parseBigDecimalFromText(text);
// then
Assert.assertEquals(new BigDecimal("0"), bigDecimal);
}
Но когда я исполняю мое приложение, проходящую точно такую же строку «0» Я получил «java.lang.NumberFormatException»
Далее следует журнал:
2014-11-05 23:21:33.142: INFO - parseBigDecimalFromText(0)
2014-11-05 23:21:33.142: SEVERE - null
java.lang.NumberFormatException
at java.math.BigDecimal.<init>(BigDecimal.java:470)
at java.math.BigDecimal.<init>(BigDecimal.java:739)
at com.aa.travian.pages.BasicPage.parseBigDecimalFromText(BasicPage.java:121)
Я знаю, что когда начинается мое приложение, я устанавливаю конкретный язык:
Locale locale = getConfig().getLocale();
ResourceBundle = ResourceBundle.getBundle("translations", locale);
но я не вижу, как это должно быть b reake мой метод parseBigDecimalFromText.
Ниже моя версия Java:
java -versionjava version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.2) (7u65-2.5.2-3~14.04)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
Любая идея, что происходит здесь? Глядя на исходном коде BigDecimal он выглядит, как он падает при разборе показателя:
// exponent expected
if ((c != 'e') && (c != 'E'))
throw new NumberFormatException();
Спасибо заранее за ваше время.
Что произойдет, если вы набираете вручную 'новый BigDecimal ("0")'? – Dici
Уверены, что после '0' нет пробела? –