Java разделение чисел [дубликаты]

1

Ниже приведен код, когда я делю 5/6, он показывает 0,0 выход, а не 0,8333.

package sunday;

import java.util.Scanner;

public class exception {
    public static void main(String[] args) {
        int donut,milk;
        double donutperglass;
        Scanner in=new Scanner(System.in);
        try{
            System.out.println("enter donut");
            donut=in.nextInt();
            System.out.println("enter milk");
            milk=in.nextInt();

            if(milk<1)
                throw new Exception("no milk");

            donutperglass=donut/milk;
            System.out.println(donutperglass);
        }catch(Exception e){
            System.out.println(e.getMessage());
            System.out.println("go buy some milk");
        }
        System.out.println("end");
        // TODO Auto-generated method stub    
    }    
}
  • 0
    Я ненавижу, когда забываю что-то вроде этого.
Теги:
exception-handling
decimal-point

4 ответа

3

Измените типы данных о donut и milk вдвое.

Так что он вернет двойное значение вместо int.

См. Этот вопрос для получения более подробной информации.

Целочисленное подразделение: как вы производите двойной?

0

Объявите donut и milk как двойной тип, если вы хотите двойного типа dounutperglass после разделения.

0

Тип данных должен быть изменен на двойной.

Причина: int не может удерживать значения с плавающей запятой.

int/int дает int only. Измените типы данных о донете и молоке вдвое.

double/double дает вам точный результат

0

Вы должны передать одно из условий в значение с плавающей запятой, а не int.

Например:

donutperglass=((double) donut)/milk;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню