Я занимаюсь колледжей на Java, который занимается валютой. Для этого мне рекомендуется использовать ints вместо double, а затем конвертировать его в долларовое значение, когда я распечатываю заявление.Как эффективно использовать Оператор модуля в Java
Все работает нормально, пока не сделаю расчеты на число 4005 (как в $ 40.05, представленном как int). Я вставляю часть кода, с которым у меня возникают проблемы, я был бы признателен, если бы кто-нибудь мог сказать мне, что я делаю неправильно.
import java.io.*;
class modumess {
public static void main(String[] args) {
int money = 4005; //Amount in cents, so $40.05;
// Represent as normal currency
System.out.printf("$%d.%d", money/100, money%100);
}
}
Приведенный выше код при запуске показывает $ 40,5 вместо $ 40,05. Что дает?
Пожалуйста, обратите внимание, что это для моей домашней работы, и я хочу узнать, поэтому я бы очень хотел объяснить объяснение корня проблемы здесь, а не простое решение.
EDIT: После ответа Финбарра, я добавил следующее к коду, который, кажется, исправил проблему:
if (money%100 < 10) {
format = "$%d.0%d";
}
Это хороший способ сделать это, или я чрезмерно усложнять здесь?
EDIT: Я просто хочу дать понять, что это помогло мне и Finbarr, и ответ Уэса, я принял ответ Уэса, потому что он дал мне более четкое представление о том, как действовать.
это будет работать? http://www.java2s.com/Tutorial/Java/0120__Development/twodigityeartyTy.htm – Shad
Я проверю ссылку, спасибо. –