设置存储在对象的字符串数组中的小数的比例

时间:2012-09-28 12:36:23

标签: java arrays object

我在一个存储十进制值的对象中有一个字符串数组。

String [] array = "12345.123456789";

我希望将其格式化为12345.1234

我尝试使用以下内容但导致数字格式异常。

BigDecimal value = new BigDecimal(array.toString()).setScale( 4, BigDecimal.ROUND_HALF_UP );
array = ( Object )value.toString();

我是java的新手,所以任何人都可以帮忙......

2 个答案:

答案 0 :(得分:4)

String [] array = "12345.123456789";不是有效语句 - 无论是String还是数组,因此您需要在以下两个语句中进行选择:

String s = "12345.123456789"; //a string
String[] array = {"12345.123456789"}; //an array

如果您使用第一个表单,则可以使用:

进行舍入
BigDecimal rounded = new BigDecimal(s).setScale( 4, BigDecimal.ROUND_HALF_UP );
String roundedStr = rounded.toString();

如果使用第二种形式,可以使用:

BigDecimal rounded = new BigDecimal(array[0]).setScale( 4, BigDecimal.ROUND_HALF_UP );
String roundedStr = rounded.toString();

答案 1 :(得分:3)

       String [] array = {"12345.123456789"};
        StringBuilder numbers = new StringBuilder();
        for(int i=0;i<array.length;i++)
        {
            BigDecimal digits = new BigDecimal(array[i]).setScale( 4, BigDecimal.ROUND_HALF_UP );
            numbers.append(digits.toString());

        }

        System.out.println(numbers);