проблема кастинга в учебнике - это 0,05 или 0,5? - PullRequest
0 голосов
/ 16 декабря 2018
double cost = 10.95;
int numDollars = (int) cost; //sets numDollars to 10

Если вы намеревались округлить стоимость до ближайшего доллара, вам нужно было написать

int numDollars = (int)(cost+0.5); //numDollars has value 11

Выше написано то, что написано в моей книге AP Computer Science A Barron's book.Я довольно новичок в Java и все, но мне было просто интересно, следует ли заменить 0,5 на 0,05.Если книга верна, может ли кто-нибудь помочь мне понять, почему?

1 Ответ

0 голосов
/ 16 декабря 2018

В примере используется 10.95, но решение должно работать для всех значений.

Рассмотрим другой пример с использованием 10.51
Чтодолжен ли быть правильный ответ?11

Но как вы туда попали?

10.51 + 0.50 = 11.01, truncated by typecast to 11

Если бы мы попытались использовать ваше предложение, мы получили бы:

10.51 + 0.05 == 10.56, truncated by typecast to 10 Неправильный ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...