2015-12-18 5 views
1

Мне нужно написать java-метод для вычисления дополнительного значения.Вычислить дополнительное значение в Java

У меня есть моноблок, который стоит 10 долларов США (price). Мне нужно рассчитать добавленную стоимость в размере 20% (ADDED_VALUE), так что я сделать следующее:

price + price*ADDED_VALUE or 10 + 10*20% 

и я получаю 12. Но теперь мне нужно рассчитать 10% (NEW_ADD_VALUE) на этом 12, но я не знаю, как это сделать.

То, что я пытался до сих пор:

double priceWithAddedValue() { 

    return price + price * ADDED_VALUE + price * NEW_ADDED_VALUE 
} 

Однако приведенный выше код возвращает 13, и я полагаю, чтобы получить 13.2.

+0

Является ли 'ADDED_VALUE' или' NEW_ADDED_VALUE' или 'price' двойным? Возможно, стоит опубликовать еще несколько кодов. – CollinD

+0

@CollinD похоже, что 'price' является' int', 'ADDED_VALUE', мы надеемся, что' double' и 'NEW_ADDED_VALUE' являются' double'. Это предположение, однако, они могут быть чем угодно. –

ответ

3

Я думаю, вы должны реорганизовать это в общий метод, который принимает первоначальную двойную и фракцию, указывающего, что должно быть добавлено:

double addFraction(double initialValue, double fraction) { 
    return initialValue + fraction*initialValue; 
} 

После этого, это очень легко сделать это дважды:

addFraction(addFraction(10, 0.2), 0.1); 

Вы могли бы разделить это на несколько утверждений.

Так это будет выглядеть, как это в вашем примере:

double priceWithAddedValue(){ 
    return addFraction(addFraction(price, ADDED_VALUE), NEW_ADDED_VALUE); 
} 

Надеется, что это помогает!

+0

спасибо вам также было полезно – Leona

+1

@Leonard http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – 11684

1

Самое главное, на что нужно сосредоточиться, - это порядок операций, особенно функция скобки, поскольку это не только ценное знание для программирования, но и для повседневной жизни. (если вы используете математику в повседневной жизни)

Что вы пытаетесь сделать, это умножить число, добавив произведение двух чисел.

double priceWithAddedValue() { 

    return (price + price * ADDED_VALUE) * NEW_ADDED_VALUE; 
} 

Далее вы должны сосредоточиться на типы переменных, как float, int, double, char. Проблема, с которой вы столкнулись с получением 3 вместо 3.2, вызвана int, представляющим только целые числа (. , -2, -1, 0 , 1 , 2 , .). будь то штраф double

+1

А, я помешал это до редактирования грациозного периода. Первая версия была скорее комментарием, но после редактирования я сожалею о том, что так скоро был отмечен. – 11684

+0

@ 11684 Я честно не возражаю, если это удалено, первый принятый ответ был неправильным со счетом -1. –

+1

Я думаю, что, насколько это возможно, это, наверное, лучший ответ. Это единственный, кто обращает внимание на актуальные проблемы, которые здесь играют. – 11684

Смежные вопросы