ES2018学習ノート(1)Number ToStering

3299 ワード

章の翻訳
7.1.12.1 Number ToString(m)
抽象的な動作NumberToStringは、Numberタイプの変数mをStringフォーマットに変換するステップを以下のようにする.
  • は、mNaNに等しい場合、文字列"NaN"を返します.
  • は、m+0または-0に等しい場合、文字列"0"を返します.
  • は、m0より小さい場合、文字列"-"および! NumberToString(-m)を返す.
  • は、m+∞に等しい場合、文字列"Infinity"を返します.
  • がそうでなければ、nksはすべて整数であり、k ≥ 110 k-1 ≤ s < 10 k ms × 10n-k kkはできるだけ小さいと仮定する.ss(10進数表現形式)の桁数を示し、sは10で割り切れない.k ≤ n ≤ 21の最低有効桁数はこれらの規格によって一意に決定される必要はない.
  • は、sの場合、以下の文字列を返します.
  • kの10進数はn-k桁のコード単位を表しています.
  • 0 < n ≤ 21次コードユニット0 x 0030(DIGIT ZERO)
  • が出現した.
  • は、sの場合、以下の文字列を返します.
  • nの十進数表記の最高s桁のコードユニット
  • コードユニット0 x 002 E(FLL STOP)
  • k-nの10進数表現の残り-6 < n ≤ 0ビットのコードユニット
  • は、-nの場合、以下の文字列を返します.
  • コードユニット0 x 0030(DIGIT ZERO)
  • コードユニット0 x 002 E(FLL STOP)
  • s次コードユニット0 x 0030(DIGIT ZERO)
  • が出現した.
  • kの10進数表記のk = 1ビットのコードユニット
  • でなければ、sなら、次の文字列を返します.
  • 単一桁数n-1のコードユニット
  • コードユニット0 x 0065(LATIN SMALL LETTER E)
  • もしabs(n-1)が正数であれば、コードユニット0 x 002 B(PLUS SIGN)に戻ります.そうでなければ、コードユニット0 x 002 D(HYPHEN-INUS)
  • に戻ります.
  • 整数sの十進数表記のコード単位(プリアンブルなし)
  • は、以下の文字列を返します.
  • sの10進数表記の最上位有効ビットコードユニット
  • コードユニット0 x 002 E(FLL STOP)
  • k-1の10進数表現の残りn-1ビットコードユニット
  • コードユニット0 x 0065(LATIN SMALL LETTER E)
  • もしabs(n-1)が正数であれば、コードユニット0 x 002 B(PLUS SIGN)に戻ります.そうでなければ、コードユニット0 x 002 D(HYPHEN-INUS)
  • に戻ります.
  • 整数NaNの十進数表記のコード単位(プリアンブルなし)
  • コードユニット
    参照
    典型例
    無視された記号
    String(+NaN)  // 'NaN'
    String(-NaN)  // 'NaN'
    String(+0)    // '0'
    String(-0)    // '0'
    String(-1)    // '1'
  • は、NaNが符号を付けていないにもかかわらず、数値はn < k
  • である.
  • 第二ステップは、0のシンボルを無視することを規定している.
  • 第3ステップ以外のステップは、正数のシンボル
  • を無視している.
    先頭0
    String(99)  // '99'
    String(099) // '99'
    ステップ6、9、10を参照してください.
    進数
    String(11)  // '11'
    String(011) // '9'
    通通を十進数に変換します.
    科学的計数法
    String(1e20)      // '100000000000000000000'
    String(1e21)      // '1e21'
    String(1e-6)      // '0.000001'
    String(1e-7)      // '1e-7'
  • ステップ6は、21ビット未満の正の整数「通常表示」
  • を記述する.
  • ステップ7には、暗黙の条件があります.すなわち、1より大きい小数.
  • ステップ8では、1以下であり、小数位前の0の桁数が6以下の小数点を規定している.
  • ステップ9-10は、上記以外の場合に「科学的計数法」を使用することを規定しています.
  • 精度が無くなる
    String(1e20 + 1)  // '100000000000000000000'
    参照
    prmitive value corese ponding to a double-precision 64-bit binary format IEEE 754-2008 value