Он работает, если я ввожу 10, а затем 2, он дает мне 5. Но я применяю его в другой программе и теперь отпускаю попробовать, и он не дает мне результатов с десятичными знаками, то есть деление того, 2/10
что 0.2
было бы be не показывает его мне.
Почему? Что я делаю не так?
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Introduce dos numeros para dividir\nNumero: ");
int num1 = sc.nextInt();
System.out.print("Numero: ");
int num2 = sc.nextInt();
float div = num1/num2;
System.out.println("La division de "+num1+"/"+num2+" = " +div);
}
Lo que sucede que si divides dos números enteros el resultado será otro número entero.
Вот почему вы должны
cast
разделить любое целочисленное значение на одно из типовfloat
, посколькуcast se realiza antes de la operación
Результатом операции между целым числом и типом
float
будетfloat
, прежде чем присваивать значение переменнойdiv
Этот код позволяет вам выполнять деление между десятичными знаками, поскольку переменные объявлены двойными, что позволяет мне выполнять деления и что результат дает мне десятичное число.
У вас есть два варианта:
Измените типы данных, которые вы берете from
Scanner
fromint
наfloat
, потому что при делении двух целых чисел результатом будет другое целое число, оставляя ваши переменные такими:Приведите свою операцию к нужной вам точке, в данном случае с плавающей запятой, поэтому ваша переменная
div
будет выглядеть так: