почему получается 0 [дубликат]

138
23 октября 2017, 23:53

На данный вопрос уже ответили:

  • Почему при делении результат округляется? 1 ответ

public static double HD1080W = ((1920-1366)/1366)*100;
public static double HD1080H = ((1080-768)/768)*100;
вывожу в консоль:
экран:0.0x0.0 -как видите получается 0,а мне это не очень надо я пробовал ставить int вместо double но ни-к каким результатам это не привело...

Прошу помочь,может я где-то недосмотрел...

Answer 1

В Java при делении целого числа на целое число получается целое число. В данном случае 0. Укажите компилятору, что заинтересованы в дробных значениях:

public static double HD1080W = ((1920.0-1366)/1366)*100;
public static double HD1080H = ((1080.0-768)/768)*100;
Answer 2

Вы делите целые числа, они просто потом автоматически преобразуются в дробные, т.к. при выражении подобного типа явное преобразование не требуется. К литералам (вашим числам в коде) можно добавить d (Пример:1920d-1366d...), тогда действия будут выполняться с дробными числами. Вот хорошая статья про литералы. Также можно просто добавить точку с нулем, как в ответе выше.

READ ALSO
Как вызвать новое окно?

Как вызвать новое окно?

По нажатию кнопки должна появляться новое окно, и закрываться староеЯ использую контроллеры для каждого FXML

199
Проблема из-за изменение Media ссылок

Проблема из-за изменение Media ссылок

Добрый деньВ своём приложение сделал типа коллекцию музыки воспроизводимой MediaPlayer JavaFX

144
Вызов метода в иерархии класса

Вызов метода в иерархии класса

есть интерфейс Animal который имеет метод getSpeed()

236