toExponentialメソッド

広告

toExponentialメソッドは対象のNumberクラスのオブジェクトを文字列に変換する場合に、小数点以上の桁数を1桁とし小数点以下の桁数を指定した桁数にした指数形式で変換した値を返します。

Numberクラスのオブジェクトの文字列表現を返します。指数形式に変換し、小数
点以上の桁数を1とし、小数点以下の桁数を指定した桁数になるように必要に応
じて四捨五入を行ったり0で埋めます。

パラメータ:
  int  小数点以下の桁数
戻り値:
  Numberクラスのオブジェクトが表す数値の文字列表現
例外:
  RangeError  小数点以下の桁数に範囲を超えた数値を指定した場合

Numberクラスのオブジェクトが表す数値を文字列に変換した結果を返します。この時、小数点以上の桁数が1で小数点以下の桁数を引数で指定した数値にした指数形式にします。

まず対象のオブジェクトが表す数値の小数点以上の桁数を1として指数形式に変換します。

135.7   --> 1.357e+2
0.00274 --> 2.74e-3

次に小数点以下の桁数が指定した桁数よりも大きい場合には、指定した桁数の次の位置で四捨五入を行います。

対象の数値  1.357e+2

toExponential(0) --> 1e+2
toExponential(1) --> 1.4e+2
toExponential(2) --> 1.36e+2
対象の数値  2.74e-3

toExponential(0) --> 3e-3
toExponential(1) --> 2.7e-3

小数点以下の桁数に0を指定した場合、小数点以下1位の数値を四捨五入します。小数点以下の桁数に1を指定した場合、小数点以下2位の数値を四捨五入します。

対象のオブジェクトが表す数値の小数点以下の桁数が指定した桁数よりも小さい場合には、指定した桁数になるように0で埋めて行きます。

対象の数値  1.357e+2

toExponential(3) --> 1.357e+2
toExponential(4) --> 1.3570e+2
対象の数値  2.74e-3

toExponential(2) --> 2.74e-3
toExponential(3) --> 2.740e-3
toExponential(4) --> 2.7400e-3

次の例を見て下さい。

var num_obj = new Number(135.7);
var str1 = num_obj.toExponential(0);   // "1e+2"
var str2 = num_obj.toExponential(2);   // "1.36e+2"
var str3 = num_obj.toExponential(4);   // "1.3570e+2"

小数点以上が1桁で小数点以下の桁数が指定した桁数になるように変換された文字列を取得できます。

なお小数点以下の桁数にあまり大きな数値を指定するとRangeError例外が発生します。

サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script6_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

document.write("<p>");

var num_obj = new Number(135.7);

print(num_obj.toExponential(0));
print(num_obj.toExponential(1));
print(num_obj.toExponential(2));
print(num_obj.toExponential(3));
print(num_obj.toExponential(4));

var num_obj2 = new Number(0.00274);

print(num_obj2.toExponential(0));
print(num_obj2.toExponential(1));
print(num_obj2.toExponential(2));
print(num_obj2.toExponential(3));
print(num_obj2.toExponential(4));

try{
  print(num_obj.toExponential(1000));
}catch (e){
  print(e);
}

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p6-1

( Written by Tatsuo Ikura )