Skip to content

Commit 30ed289

Browse files
authored
Merge pull request #50 from nakaken88/patch-13
2 parents a984dcd + 798be6b commit 30ed289

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

1-js/05-data-types/02-number/8-random-min-max/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ importance: 2
66

77
組み込み関数 `Math.random()``0` から `1` (`1` は含まない)のランダムな値を作成します。
88

9-
`min` から `max` (`max` は含まない)のランダムな少数値を生成する関数 `random(min, max)` を書いてください。
9+
`min` から `max` (`max` は含まない)のランダムな小数値を生成する関数 `random(min, max)` を書いてください。
1010

1111
動作例:
1212

1-js/05-data-types/02-number/article.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ alert( num.toString(2) ); // 11111111
103103
```warn header="メソッドを呼ぶための2つのドット"
104104
`123456..toString(36)` の2つのドットはタイプミスではないことに注意してください。上の例の `toString` のように、数値に対して直接メソッド呼び出しをしたいとき、その後に2つのドット `..` を置く必要があります。
105105
106-
もし1つのドットを置いた場合 `123456.toString(36)`、エラーになるでしょう。なぜならJavaScript構文は最初のドットの後を少数部分と考えるためです。そして、もう1つドットを置くと、JavaScriptは少数部分が空であることを知り、メソッドと判断します。
106+
もし1つのドットを置いた場合 `123456.toString(36)`、エラーになるでしょう。なぜならJavaScript構文は最初のドットの後を小数部分と考えるためです。そして、もう1つドットを置くと、JavaScriptは小数部分が空であることを知り、メソッドと判断します。
107107
108108
109109
また、このように書くこともできます `(123456).toString(36)`.
@@ -137,15 +137,15 @@ alert( num.toString(2) ); // 11111111
137137
|`-1.6`| `-2` | `-1` | `-2` | `-1` |
138138

139139

140-
これらの関数は、数値の小数点の扱い方の全ての可能性をカバーしています。しかし、少数の後の数値を `n-th`(n桁) に丸めたいときはどうすればよいでしょうか。
140+
これらの関数は、数値の小数点の扱い方の全ての可能性をカバーしています。しかし、小数の後の数値を `n-th`(n桁) に丸めたいときはどうすればよいでしょうか。
141141

142142
例えば、`1.2345` という数値があり、`1.23` のみを取り出すような、2桁に丸めたい場合です。
143143

144144
それをするために2つの方法があります:
145145

146146
1. 乗除算
147147

148-
例えば、少数第2位で数値を丸めるために、 数値を `100` で乗算し、丸め関数を呼び出した後、それを除算します。
148+
例えば、小数第2位で数値を丸めるために、 数値を `100` で乗算し、丸め関数を呼び出した後、それを除算します。
149149
```js run
150150
let num = 1.23456;
151151
@@ -166,7 +166,7 @@ alert( num.toString(2) ); // 11111111
166166
alert( num.toFixed(1) ); // "12.4"
167167
```
168168

169-
`toFixed` の結果は文字列であることに注意してください。もし少数部分が指定桁より短い場合、末尾にゼロが挿入されます。
169+
`toFixed` の結果は文字列であることに注意してください。もし小数部分が指定桁より短い場合、末尾にゼロが挿入されます。
170170
:
171171

172172
```js run
@@ -206,13 +206,13 @@ alert( 0.1 + 0.2 ); // 0.30000000000000004
206206

207207
しかし、なぜこのようなことが起こるのでしょうか?
208208

209-
数値はバイナリ形式で、10の並びでメモリ上に格納されます。しかし10進数でシンプルに見える `0.1`` 0.2` のような少数は、バイナリ形式では終わることのない少数です
209+
数値はバイナリ形式で、10の並びでメモリ上に格納されます。しかし10進数でシンプルに見える `0.1`` 0.2` のような小数は、バイナリ形式では終わることのない小数です
210210

211-
言い換えると、`0.1` とは何でしょう?それは 110 で割った `1/10` です。10進数では、このような数値は簡単に表現できます。 それと `1/3` を比較してみてください。これは無限の少数 `0.33333(3)` になります。
211+
言い換えると、`0.1` とは何でしょう?それは 110 で割った `1/10` です。10進数では、このような数値は簡単に表現できます。 それと `1/3` を比較してみてください。これは無限の小数 `0.33333(3)` になります。
212212

213213
従って、`10` の累乗による除算は 10進数では上手く動作することが保証されますが、`3` による除算は保証されていません。同じ理由で、2進数では、`2` の累乗による除算は動作することが保証されていますが、 `1/10` は無限の2進数の小数になります。
214214

215-
2進数を使って、 *正確な 0.1* または *正確な 0.2* を格納する方法はありません。ちょうど、10進数で 1/3 を少数で正確に表現できないように
215+
2進数を使って、 *正確な 0.1* または *正確な 0.2* を格納する方法はありません。ちょうど、10進数で 1/3 を小数で正確に表現できないように
216216

217217
数値形式 IEEE-754 は、可能な限り近い数値に丸めてこれを解決します。 これらの丸めルールでは、通常 "小さな精度損失" は見ることができないので、数値は `0.3` と表示されます。 しかし、損失は依然として存在することに注意してください。
218218

@@ -255,7 +255,7 @@ PHP, Java, C, Perl, Ruby は全く同じ結果を返します。なぜならそ
255255

256256
`0.1 * 10 = 1``0.2 * 10 = 2` をするとき、両方の数値は整数になり、精度損失がなくなるため、これは正しく動作します。
257257

258-
3. もしもショップを扱っている場合、最も抜本的な解決策はセントで全ての価格を格納し、全く少数を使わないことです。しかし、30% のディスカウントを適用するとどうなるでしょうか?実際には、完全に回避することはほぼ不可能なので、上記の解決法はこの落とし穴を回避するのに役立ちます。
258+
3. もしもショップを扱っている場合、最も抜本的な解決策はセントで全ての価格を格納し、全く小数を使わないことです。しかし、30% のディスカウントを適用するとどうなるでしょうか?実際には、完全に回避することはほぼ不可能なので、上記の解決法はこの落とし穴を回避するのに役立ちます。
259259

260260
````smart header="興味深いこと"
261261
これを試してみてください:

0 commit comments

Comments
 (0)