回答編集履歴
1
追記
answer
CHANGED
@@ -11,4 +11,20 @@
|
|
11
11
|
|
12
12
|
などと組みますね。
|
13
13
|
あと、質問文のプログラムでは引数がintで戻りがdoubleというのがおかしいです。
|
14
|
-
動くのですが、doubleで戻す意味がありません。
|
14
|
+
動くのですが、doubleで戻す意味がありません。
|
15
|
+
|
16
|
+
(追記)
|
17
|
+
|
18
|
+
> intの引数を3つ持ち、全ての値を掛け算した答えをdoubleで返す」 というメソッドを作成しましょう。 という課題
|
19
|
+
|
20
|
+
あ、ほんとにそういう課題だったのですか⋯
|
21
|
+
だとすると、a*b*cではだめです。
|
22
|
+
|
23
|
+
なぜdoubleで返すか。
|
24
|
+
数値の上限ですね。intは約21億が上限ですから、かけ算の結果これを越えて(オーバーフローして)しまい無意味な値を返すことになってしまいます。だからdoubleで返そうと。
|
25
|
+
ただし、a*b*cと書いたらintとしてかけ算が行われるので、この時点でオーバーフローが発生します。doubleとしてかけ算させる必要があるのです。
|
26
|
+
(double)a * (double)b * (double)c
|
27
|
+
と書くとクリアできます。
|
28
|
+
doubleとintのかけ算はdoubleとして実行されるという性質がありますので、
|
29
|
+
(double)a * b * c
|
30
|
+
でも十分ですが。
|