イントロダクション
JavaScript にて、3.14 のような小数点以下の数値が付与された数値から、3 のような整数のみの数値を取り出したい場合にはどうすればよいのでしょうか?C言語やC++言語といった、データを扱う変数の型を厳格に定義できる(しなければならない)言語であれば、浮動小数点型を整数型へ型キャストするだけで、整数の取り出しが完了します。
例)
double a = 3.14;
int b = (int)a; // b には 3 が入っている
一方、JavaScript の場合には、このような形式で整数の取り出しを行うことはできません。
注意:
JavaScript のデータが型を持っていないわけではありません。内部的には型を持っていますが、型を固定した変数を宣言することはできません。JavaScript では、変数は全て var によって宣言します。
var - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/var
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/var
そこで、JavaScript の場合に、小数点以下の数値が付与された数値から、整数のみの数値を取り出す方法を調べてみました。
浮動小数点型を整数型に型キャストするように、小数点以下を切り捨てたい
JavaScript にて、浮動小数点型を整数型に型キャストするように、小数点以下を切り捨てたい場合には、parseInt()を使用します。parseInt
parseInt は第1引数に指定された文字列を、第2引数で指定された基数に基づき、整数へと変換します。parseInt(string[, radix])
parseInt() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/parseInt
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/parseInt
第2引数の基数が指定されていなかった場合には、第1引数の文字列の先頭の値によって、16進数、8進数、10進数のいずれかに解釈されます。
従って、小数点以下を切り捨てたい数値の先頭に 0 が付与されていない場合には、以下のコードによって、小数点以下を切り捨てることが可能です。
var num = parseInt(10.555); // num は 10
var num = parseInt("-10.555"); // num は -10注意
Math オブジェクトのメソッド(Math.ceil, Math.floor, Math.round)を使用すると、小数点以下を無くすような操作をすることができますが、小数点以下の切り捨てと同じ動作ならないことに注意してください。
Math.ceil - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil
Math.floor() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
Math.round() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/round
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil
Math.floor() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
Math.round() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/round
特に、一見、小数点以下の切り捨てのように見えても、小数を含む値が、プラスの場合と、マイナスの場合とで、整数の部分への反映の仕方が異なります。
それらのメソッドを使用して、式を組み合わせれば小数点以下の切り捨てと同じ動作をさせることは可能ですが、そのような手間をかけるくらいなら、素直に parseInt を使用した方がよいでしょう。
参考文献
変数 - JavaScript 入門
http://javascript.keicode.com/lang/variables.php
JavaScript_データの型
http://www.da-tools.com/AE/javaScript/JS07.html
実数を整数に丸める4パターン(JavaScript おれおれ Advent Calendar 2011 – 7日目) | Ginpen.com
http://ginpen.com/2011/12/07/rounding/
http://javascript.keicode.com/lang/variables.php
JavaScript_データの型
http://www.da-tools.com/AE/javaScript/JS07.html
実数を整数に丸める4パターン(JavaScript おれおれ Advent Calendar 2011 – 7日目) | Ginpen.com
http://ginpen.com/2011/12/07/rounding/
まとめ
このように、JavaScript にて、浮動小数点型を整数型に型キャストするように、小数点以下を切り捨てたい場合には、parseInt を使用します。小数点以下を無くすように操作する標準機能はほかにもありますが、動作の違いに注意してください。
コメントを投稿
コメント投稿機能について