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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

2504閲覧

小数点以下の切り上げがうまくいかない

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2018/02/08 00:52

前提・実現したいこと

Javaで入力された2つの正整数の平均を小数点以下を切り上げて出力するプログラムを書いています。

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

7と4を入力すると平均「5.5」になって、出力は6になるはずですが、5と出力される状況に困っています。エラーなどは一切表示されていません。

7 4 5

該当のソースコード

java

1package hogehoge; 2import java.util.Scanner; 3 4public class Main { 5 6 public static void main(String[] args) { 7 Scanner sc = new Scanner(System.in); 8 // two inputs 9 int a = sc.nextInt(); 10 int b = sc.nextInt(); 11 12 int ave = (int) Math.ceil((a+b)/2); 13 14 15 System.out.println(ave); 16 } 17 18}

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

Eclipse Java EE IDE for Web Developers.

Version: Neon.3 Release (4.6.3)
Build id: 20170314-1500

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

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

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

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

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

guest

回答2

0

ベストアンサー

ceilメソッドの引数である「(a+b)/2」のa,b,2が全てint型なので、この計算をするとint型の5となります。(ceilメソッドに渡す前に切り捨てが発生)
int型の5をceilメソッドに渡しているので(暗黙の型変換でint→doubleとなる)返り値は5になります。

ceilで切り上げてもらうには「(a+b)/2」の計算をdouble型で行う必要があります。
「(a+b)/2.0」や「(a+b)/(double)2」としましょう。

投稿2018/02/08 01:04

YamakawaJunichi

総合スコア630

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

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

0

(a+b)/2
を先に表示するとわかると思います。

ceilメソッドを計算する前に切り捨て処理が行われて5になっているはずです。整数同士の割り算は整数に切り捨てられます。この計算では小数がそもそもでてきません。

投稿2018/02/08 00:55

編集2018/02/08 00:59
HogeAnimalLover

総合スコア4830

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問