近似数では、左端の 0 ではない最初の数値から始まり、正確な桁数まで、それらの間にあるすべての数値です。はすべて、この近似数の有効数字と呼ばれます
例:
890314000 は 8.90×10 の 8 乗の有効数字 3 桁を保持します (四捨五入)
839960000 は 8.40×10 の 8 乗の有効数字 3 桁を保持します (四捨五入)
0.00934593有効数字 3 桁までは 9.35×10 の -3 乗です
ほとんどの電卓やコンピューター プログラムは、非常に大きい結果と非常に小さい結果を科学表記法で表示します。指数の上付き文字 (1011 など) は画面上に表示するのが不便であるため、通常、文字 E または e は 10 乗 (「×10b」と表記) を表すために使用され、E または e の後の数字はその指数です。つまり、任意の 2 つの実数 a と b (b は整数である必要があります) について、「aEb」で表される値は a × 10b です。この使用法における文字 e は数学定数 e ではなく、指数関数 exp() (誤解を避けるため大文字の E で示されています) ではないことに注意してください。ただし、この記号は通常、指数を表します。指数の基底記号ではなく、(科学的記法) E または e 記号が呼び出されます (ただし、後者も発生します)。正式な出版物ではこの表示方法を使用しないようにしてください。 科学表記法の e または E は、数学定数 e または関数 exp とは何の関係もないことに注意してください。
この書き方は、一部のコンピュータープログラムで上付き文字を書く際の不便さによって引き起こされます。この書き方は公式出版物では使用しないでください。
私の国の国家標準における科学表記法は、aEb ではなく ×10b の形式で表されます (GB3101-1993、GBT15835-2011、GBT8170-2008 を参照)。
@Test publicvoid testPrintScientificNotation(){ //整数部分位数大于等于8时开始以科学计数法显示 System.out.println(-12345678.0); System.out.println(12345678.0); //整数位为0,当小数位以0开始连续出现大于等于3时开始以科学计数法显示 System.out.println(0.0001); System.out.println(-0.0001); }結果
<span class="pun">-</span><span class="lit">1.2345678E7</span>
<span class="pun">-</span><span class="lit">1.2345678E7</span>
<span class="lit">1.2345678E7</span>
<span class="lit">1.0E-4</span>
-<span class="lit">1.0E-4</span>
<span class="lit">1.2345678E7</span>
<span class="lit">1.0E-4</span>
-<span class="lit">1.0E-4</span>
多くの場合、統合を行う必要があります。どちらか一方をすべて出力する必要があります。科学表記法で表示するか、すべてを通常の表記法で表示します。 の実装メソッドは主にNumberFormat、DecimalFormat、BigDecimalの3つがあるそうです。
2.1 NumberFormat
NumberFormat は、すべての数値形式の抽象基本クラスです。
publicstaticString scientificNotation2String(Double d,int newValue){ String value =null; NumberFormat nf =NumberFormat.getInstance(); // 设置此格式中不使用分组 nf.setGroupingUsed(false); // 设置数的小数部分所允许的最大位数。 nf.setMaximumFractionDigits(newValue); value = nf.format(d); return value; }入力された小数点以下の桁数が設定された最大小数点以下の桁数を超える場合、四捨五入されます。 2.2 DecimalFormatDecimalFormat は NumberFormat の具象サブクラスであり、10 進数の書式設定に使用されます。このクラスは、西洋数字、アラビア数字、インド数字のサポートなど、あらゆるロケールの数字を解析して書式設定できるさまざまな機能を備えて設計されています。また、整数 (123)、固定小数点数 (123.4)、科学表記法の数値 (1.23E4)、パーセンテージ (12%)、金額 ($123) など、さまざまなタイプの数値もサポートしています。このコンテンツはすべてローカライズできます。
publicstaticString scientificNotation2String(Double d){ String value =null; DecimalFormat decimalFormat =newDecimalFormat("0.00");//格式化设置 value = decimalFormat.format(d); return value; }テンプレートを設定し、保持する小数点以下の桁数を指定する必要があります。受信値の小数点以下の桁数が指定された小数点以下の桁数を超える場合は、小数点以下の桁数が四捨五入されます。受信値が指定された小数点以下の桁数より小さい場合は、ゼロ埋め込みを設定できます。
BigDecimal は不変の任意精度の符号付きです。 10 進数。
publicstaticString scientificNotation2String(String str){ String value =null; BigDecimal bd =newBigDecimal(str); value = bd.toPlainString(); return value; }BigDecimalには多くの
BigDecimal の toString メソッドと toPlanString メソッドの違い:
以上がJava科学表記法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。