public class NumFormatTest
{
public static void main(String[] args) throws ParseException
{
String num = "1 201";
DecimalFormat df = (DecimalFormat) NumberFormat.getNumberInstance(Locale.FRANCE);
System.out.println("Number Before parse: "+num);
double dm = df.parse(num).doubleValue();
System.out.println("Number After parse: "+dm);
}
}
Output:Java Decimal vấn đề Format phân tích
Number Before parse: 1 201
Number After parse: 1.0
Dự kiến Output:
Number Before parse: 1 201
Number After parse: **1201**
bất kỳ có thể vui lòng giúp tôi hiểu tại sao phân tích không có khả năng chuyển đổi một locale PHÁP định dạng chuỗi (1 201) đến giá trị kép bình thường (1201.0)?
tôi nhận thấy một cái gì đó giống như này Nếu tôi lần đầu tiên thử và định dạng một đôi như d này = 1201 Chuỗi retval = df.format (d); sau đó thử phân tích cú pháp giá trị được định dạng này sẽ là retVal = 1 201 double val = df.parse (retVal) .doubleValue(); điều này sẽ hoạt động và sẽ thấy val = 1201.0 Nhưng tôi đã có chuỗi ở định dạng FRENCH (1 201) và phân tích cú pháp trực tiếp không hoạt động. Không biết tại sao ... nếu bạn giúp tôi trả lời lý do. –
Điều này có thể giúp: http://stackoverflow.com/a/8389625/3519951 –
@AmitNag hãy xem câu trả lời của tôi ... Tôi giải thích rằng hành vi đó có – ParkerHalo