Java-math-bigdecimal-tostring

提供:Dev Guides
移動先:案内検索

Java.math.BigDecimal.toString()メソッド

説明

  • java.math.BigDecimal.toString()*は、指数が必要な場合は科学表記法を使用して、このBigDecimalの文字列表現を返します。

BigDecimalの標準的な正規の文字列形式は、次の手順によって作成されます。最初に、BigDecimalのスケールなしの値の絶対値は、先頭に「0」から「9」までの文字を使用して10進数の文字列に変換されますゼロ(値がゼロの場合を除き、その場合は単一の「0」文字が使用されます)。

次に、調整された指数が計算されます。これは、否定されたスケールに、変換されたスケーリングされていない値の文字数から1を引いたものです。 つまり、-scale +(ulength-1)です。ここで、ulengthは、10進数のスケールなし値の絶対値の長さ(その精度)です。

スケールがゼロ以上で、調整された指数が-6以上の場合、数値は指数表記を使用せずに文字形式に変換されます。

この場合、スケールがゼロの場合、小数点は追加されず、スケールが正の場合、小数点の右側の文字数を指定するスケールとともに小数点が挿入されます。 必要に応じて、変換されたスケールなしの値の左側に「0」文字が追加されます。 この挿入後に小数点の前に文字がない場合、従来の「0」文字が接頭辞として付けられます。

それ以外の場合(つまり、スケールが負の場合、または調整された指数が-6未満の場合)、指数表記を使用して数値が文字形式に変換されます。 この場合、変換されたBigIntegerに複数の数字がある場合、最初の数字の後に小数点が挿入されます。

次に、文字形式の指数に、変換されたスケールなしの値の接尾辞が付けられます(おそらく小数点が挿入されます)。これは、文字「E」の直後に、文字形式に変換された調整済み指数が続きます。

後者は、先頭にゼロを付けずに「0」から「9」の文字を使用する基数10であり、調整された指数が負の場合は常に符号文字「-」(「\ u002D」)が前置され、「+」( '\ u002B')それ以外の場合。

最後に、スケールされていない値がゼロ未満の場合、文字列全体の前にマイナス記号文字「-」(「\ u002D」)が付けられます。 スケールなしの値がゼロまたは正の場合、符号文字はプレフィックスされません。

宣言

以下は* java.math.BigDecimal.toString()*メソッドの宣言です。

public String toString()

オーバーライド

クラス Object のtoString。

パラメーター

NA

戻り値

このメソッドは、このBigDecimalの文字列表現を返します。

例外

NA

次の例は、math.BigDecimal.toString()メソッドの使用法を示しています。

package com.finddevguides;

import java.math.*;

public class BigDecimalDemo {

   public static void main(String[] args) {

     //create a BigDecimal object
      BigDecimal bg;

     //create a String object
      String s;

      MathContext mc = new MathContext(3);//3 precision

      bg = new BigDecimal("1234E4", mc);

     //assign the string value of bg to s
      s = bg.toString();

      String str = "String value of " + bg + " is " + s;

     //print s value
      System.out.println( str );
   }
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

String value of 1.23E+7 is 1.23E+7