質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

705閲覧

javaでの型変換について

mayoneizu

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2022/01/07 01:18

前提・実現したいこと

平均値メソッドを作って、配列の平均値を求める課題をしています。そこで、doubleへの型変換のやり方について、わからないことがあるためご教授いただきたいです。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

先生から、「doubleへの型変換をreturn直前に行う形となります。現状ですと型変換ではなく、doubelでの計算となっています。」という指摘を頂いたのですが、解決法を見いだせずにいるので、何かヒントなどを下さるとありがたいです。
コードは下記の通りです。

エラーメッセージ

該当のソースコード

protected double avg() {

//平均値の計算 double avg = (double) super.sum() / super.toIntArray().length; //返却 return avg; }
ソースコードjava

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

super.sum()は親クラスのsumメソッドです。
super.toIntArray()は配列のメソッドです。
ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

出題者の意向は他人にはわからないのでどう言われるか知らないですが

java

1 2 return (double) (super.sum() / super.toIntArray().length); 3

でも、intの計算結果をDoubleだと小数点は.0にしかならないような…?
要件確認してください。
どういう値に対しどういう計算結果を得たいのか。

投稿2022/01/07 01:28

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/01/07 01:30

指摘の意味を理解したほうが良いとは思います。 元のコードはsuper.sum()のみdoubleにしています。
mayoneizu

2022/01/07 01:45

回答頂きありがとうございます。m.ts10806さんに示していただいたコードで実行したところ、ちゃんと4.5などの小数点で表示されています。もう一度、出題者の方にレビューを頂きたいと思います。
m.ts10806

2022/01/07 02:03

元のコードでなぜ指摘されたのか、なぜ今回のコードで満たせるのか 説明できるようになっておいたほうが良いですよ。 課題にはそれぞれ意図や意味があるでしょうし
dodox86

2022/01/07 02:10

superのsum()メソッド自体が double sum();なのでしょうね。int sum()であればm.ts10806さんのご懸念どおり、小数点以下は常に0になるはずです。
m.ts10806

2022/01/07 02:35

dodox86さん 補足ありがとうございます。 提示されてないコードがある中なのでこちらもこれで良いか分からないのは実際のところですしね。 「とりあえず計算結果をdoubleで返したよ」だけです。
mayoneizu

2022/01/07 08:44

m.ts10806さん、dodox86さん 至らない点が多い中、丁寧に答えてくださりありがとうございます。今後もよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問