26
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【JavaScript】数値から文字列に変換する

Last updated at Posted at 2019-10-08

JavaScript を勉強することになったのでとりあえず FizzBuzz を書いてみることにしました。
FizzBuzz 関数内において、引数として受け取った値を Number 型から String 型に変換する必要が出てきた際に詰まりました。
そこで、Number 型から String 型への変換方法を調べてみた結果、色々見つかったので残しておくことにしました。

#結論を先に書いておく。
Number 型の値をただ文字列に変換したいだけならば、String() で変換するのが一番いいと思う。

#String(Number)
ただ単純に Number 型のオブジェクト(以下、Number)を String 型のオブジェクトに変換するみたいです。
恐らくこれが最もオーソドックスな方法なのかな?と感じます。

NumToStr1.js
var num = 100;
var s = String(num); //=> "100" 

#Number.toString(n)
このメソッドは Number を n 進数に変換した文字列を返すみたいです。
そのため、Number が 10 進数ならば、引数 n に 10 を指定すればそのまま Number を String 型に変換することができます。
また、引数に何も指定しない場合は n = 10 として Number が変換されます。

NumToStr2.js
var num = 255;
var s1 = num.toString(10); //=> "255"
var s2 = num.toString(16); //=> "ff"
var s3 = num.toString(32); //=> "7v"
var s4 = num.toString(); //=> "255"

#Number.toFixed(n)
このメソッドは Number の小数点以下の桁数を n 桁にした文字列を返すみたいです。
そのため、文字列に変換したい Number が整数ならば、引数に 0 を指定すればそのまま文字列に変換することができます。

NumToStr3.js
var num = 3.141592;
var s1 = num.toFixed(0); //=> "3"
var s2 = num.toFixed(6); //=> "3.141592"
var s3 = num.toFixed(10); //=> "3.1415920000"

#その他
+ 演算子を文字列連結演算子として解釈させることで、文字列に変換する方法もあるみたいです。

NumToStr4.js
var num = 100;
var s = num + ""; //=> "100"

#参考
SOFTELメモ
MDN web docs mozilla : Number.prototype.toString()
MDN web docs mozilla : Number.prototype.toFixed()

#まとめ
Number をただ文字列に変換したいだけならば、String() で変換するのが一番よさそう。
値を n 進数に変換し、さらに文字列として扱いたいなら、 Number.toString()
Number.toFixed()はきっとピンポイントで使うときがあるんだろう(よくわからないけど)。

26
44
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?