2

10進値を格納しているオブジェクトに文字列配列があります。

String [] array = "12345.123456789";

次のようにフォーマットしたい12345.1234

次のように試しましたが、数値形式の例外が発生しました。

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

私はJavaを初めて使用するので、誰か助けてください...

4

2 に答える 2

4

String [] array = "12345.123456789";は有効なステートメントではありません-文字列または配列のいずれかであるため、次の2つのステートメントから選択する必要があります。

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();

2番目の形式を使用する場合は、次を使用できます。

BigDecimal rounded = new BigDecimal(array[0]).setScale( 4, BigDecimal.ROUND_HALF_UP );
String roundedStr = rounded.toString();
于 2012-09-28T12:38:26.023 に答える
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);
于 2012-09-28T12:43:37.537 に答える