2015-07-04 2 views
0

Я очень борется с онлайн-курс Java, имея минимальный опыт работы в C++ ...Использование остатков сгонять

Вот проблема:

The Fast Freight Shipping Co заряжает $ 1,10 за 500 миль для 2-фунтового пакета. Плата за доставку не пропорциональна, т. Е. Пакет объемом 2 фунта, отгруженный в 550 миль, будет стоить 2,20 доллара США.

мой основной код:

if (weight <= 2) 
    price = 1.1 * (distance/500); 

Однако, я не могу понять, как использовать остаток в размере 50 фунтов, чтобы удвоить стоимость доставки. Любая помощь будет оценена по достоинству.

ответ

1

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

Вам нужно будет сначала разделите расстояние на 500, взять потолок, и умножить его на скорость доставки:

// I'm assuming distance is an int 
double price = 1.10 * Math.ceil(distance/500.0); 

Обратите внимание, что если distance является ИНТ 500.0 не может быть записана в виде 500, так как тогда будет неявное округление вниз (поскольку это целое число, деленное на целое число).

+0

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

0

Когда вы имеете дело с валютой в java, используйте BigDecimal.

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