1.005を小数点以下2桁に丸める

#日本語プログラミング言語 #なでしこ3

なでしこさんで 1.005を 2で小数点四捨五入すると 1になる。
JavaScriptの (1.005).toFixed(2)で 1.00。
同じく Math.round(1.005*100)/100で 1。

どうやら JacaScriptで 1.005*100が 100.49999999999999になってしまうのが原因みたい。
ネットで調べると 100を掛けて 100で割る代わりに、指数を +2して四捨五入して指数を -2する手もあるそうな。
なでしこさんで作ってみる。

    //固定小数点で丸める関数

●(元実数を指定桁で)小数点ソロエとは
 指定桁は(指定桁-0)または0。
 もし、元実数が0未満ならば
  元実数は元実数の絶対値。
  負数フラグとは変数=「-」。
 ここまで//→正の数

 リターンとは変数=元実数&「e」&指定桁の四捨五入を文字列変換//したもの

     //例0.0123→小数部3桁→12の場合
 もし、(リターンの文字数)が指定桁以下ならば
  リターンはリターンを指定桁+1でゼロ埋め//したもの
 ここまで//→上記例の場合数字4個で0012

 もし、(指定桁)ならば
  リターンはリターンの(リターンの文字数)+1-指定桁に「.」を文字挿入💧//したもの

 もし、(負数フラグ)ならば
  負数フラグ&リターンを戻す。違えば
  リターンを戻す💧
ここまで//小数点ソロエ
#元実数の絶対値は1e-6以上1e21未満。

1234.50で小数点ソロエして、表示する。 //→1235
129.50で小数点ソロエして、表示する。 //→130
1.2952で小数点ソロエして、表示する。 //→1.30
100.50で小数点ソロエして、表示する。 //→101
1.0052で小数点ソロエして、表示する。 //→1.01
0.01233で小数点ソロエして、表示する。 //→0.012
1.23e-78で小数点ソロエして、表示する。 //→0.00000NaN

最後がおかしい(NaN)けど、0.000 001未満の数値を扱って小数点以下 7桁以上の固定表記で表にする…なんて状況は無いじゃろ、ということでw
入力は 1e-6以上 1e21未満にしてネ。

    //日本語プログラミング言語なでしこさん公式↓


この記事が気に入ったらサポートをしてみませんか?