Преобразование строки в bigDecimal - PullRequest
0 голосов
/ 05 августа 2010

Моя проблема в том, что у меня есть поле ввода пользователя, которое является текстовым полем, и мне нужно преобразовать его в bigDecimal для использования в базе данных.

2,50      --> 2,50  
2.50      --> 2,50  
2.5       --> 2,50  
1200      --> 1200 (or 1200,00)  
1.200     --> 1200 (or 1200,00)  
1.200,50  --> 1200,50  
1,200.50  --> 1200,50

Существует ли простой способ преобразованиявсе эти виды входов?Использование valueOf или parseDouble не выполняет эту работу.Я также попробовал DecimalFormatter, но не могу найти правильный формат.

1 Ответ

2 голосов
/ 05 августа 2010

DecimalFormat - это способ пойти - получить соответствующий DecimalFormat для локали пользователя и вызвать setParseBigDecimal(true), чтобы он анализировал BigDecimal вместо double.

Обратите внимание, чтовам действительно нужно знать правильную локаль - иначе «1,251» может означать «чуть больше одной с четвертью» или «целое число 1251».По общему признанию, вы могли бы попытаться проанализировать его с каждым доступным форматом и угадать, какой из подходящих форматов является правильным, но для меня это не кажется хорошей идеей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...