小数点の切り捨て
円周率は(pi)
ふつうに切り捨てをすると
になります。
解説
Math.PIは円周率を表すプロパティです。
Mathオブジェクトのfloorメソッドは、()内の数値の小数点以下を切り捨てます。
小数点第〇位で切り捨てるには?
切り捨てメソッドはfloorしかありません。であるならば元の数字の小数点を、切り捨てたい位の手前まで動かせばいいと考えます。そこで・・・
➀10をいくつか掛ける。いくつかには小数点以下第〇位の〇が入る。
⇒ 今回、第3位以下で切り捨てるので、10X10X10
➁元の数字に➀の計算結果を掛ける。これで小数点が移動になる。
⇒ 3.14159を10X10X10と処理し、3141.59
➂小数点が移動した数字の、小数点を切り捨てる。(floorメソッドを使う)
⇒ 3141.59をfloorにて小数点以下を切り捨て、3141となります。
➃小数点以下を切り捨てた数字を、➀の計算結果で割る。小数点を元の位置に戻す。
⇒ 3141を1000で割って、3.141となります。
解説
var point = function(num, digit){ | パラメータを2つ受け取ることになっており、1つ目が小数点第〇位から切り捨てたい元の数字、2つ目が小数点第〇位の〇の部分を指定する数字となっています。 |
var time = Math.pow(10, digit); | Math.pow(a,b)はaをb乗するということになります。この行では10をdigit回掛けることを行い、その計算結果を変数timeに代入しています。 |
return Math.floor(num * time) / time; | 計算結果を呼び出し元にリターンしています。 |
document.getElementById(‘output’).textContent = point(Math.PI, 3); | 「 point(Math.PI, 3);」 → 今回、このように呼び出した場合は、digitには「3」が代入されるので10×10×10=1000が変数timeに代入されます。 |
計算経緯
numはMath.PI(実際の数値は3.1415926…)で、これを変数time倍するので、3.1415926 × 1000 = 3141.59
3141.59をfloorにて小数点以下を切り捨て、3141となります。
3141を変数time(1000)で割って、3.141となります。
この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。
わからないことはプロフェッショナルから学ぶのが一番
オンラインで受講ができるスクールですので、全国どこからでも。