Я делаю задание по колледжу на Яве, которое имеет дело с валютой.Для этого мне рекомендуется использовать целые числа вместо двойных, а затем конвертировать их в долларовое значение, когда я распечатываю выписку.
Все работает нормально, пока я не выполню вычисления для числа 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 долл.Что дает?
Пожалуйста, обратите внимание, что это для моей домашней работы, и я хочу учиться, поэтому я был бы очень признателен за объяснение корня проблемы здесь, а не просто простое решение.
РЕДАКТИРОВАТЬ: После ответа Finbarr, я добавил следующее к коду, который, кажется, решил проблему:
if (money%100 < 10) {
format = "$%d.0%d";
}
Это хороший способ сделать это, или я слишком усложняю вещи здесь?
РЕДАКТИРОВАТЬ: Я просто хочу прояснить, что мне помог и Финбарр, и ответ Уэса, я принял ответ Уэса, потому что он прояснил мне дальнейшие действия.