В этой строке:
x = orderTotal + addInPrices[i];
вы устанавливаете x
(значение int ) на что-то вроде 2.00 + 0.25
, верно? Ваш компилятор, вероятно, предупреждает вас о возможной потере точности здесь. Значение integer может содержать только целые числа: 1, 2, 3 и т. Д. c. Если вы попытаетесь установить для него число с плавающей запятой, например, 2,25, оно будет обрезано (отрубленные десятичные точки), оставляя только целую часть. Таким образом, результатом x = 2.25
будет значение 2
в x, которое соответствует вашему выводу.
В вашем шаблоне задания ваш инструктор написал этот комментарий рядом с объявлением x
:
int x; // Loop control variable
Мне кажется, что намерение было для x
быть тем, что вы положили в for для l oop, то есть переменной, управляющей тем, сколько циклов происходит и когда оно заканчивается. Вы решили создать новую переменную i
. Это также объясняет, почему x
ни к чему не инициализируется - инициализация произошла бы в for-l oop, если вы сделали это по назначению.
Попробуйте это: вместо использования x
для сохраните новую цену, просто добавьте цену надстройки к orderTotal
, чтобы она всегда была актуальной и имела правильное значение. Таким образом, вам вообще не нужно использовать x
для этого, и вместо этого вы можете использовать его в for-l oop. Затем вы будете печатать orderTotal
вместо x
на выходе.