У меня возникли проблемы с конкретным заданием моей домашней работы. Это кажется почти невозможным. Вопрос идет так ...Использование целого числа вместо десятичного
«В будущем вы можете работать с другими языками программирования, которые не имеют такого типа, как десятичный, который поддерживает точные денежные вычисления. На этих языках вы должны выполнять такие вычисления с использованием целых чисел. Измените приложение, чтобы использовать только целые числа, чтобы рассчитать сложный процент. Рассматривайте все денежные суммы как целое число копеек. Затем разбивайте результат на свои доллары и центами, используя операции разделения и остатка соответственно. Вставьте период между долларами и когда вы показываете результаты ».
Когда я следую указаниям и использую целые числа, я получаю эти ошибки переполнения, прежде чем я могу даже что-то отделить. Кто-нибудь знает, как это сделать? Вот исходный код, который должен быть изменен ...
decimal amount; //amount on deposit at end of each year
decimal principal = 1000; //initial amount before interest
double rate = 0.05; //interest rate
//display headers
Console.WriteLine("Year{0,20}", "Amount on deposit");
//calculate amount on deposit for each of ten years
for (int year = 1; year <= 10; year++)
{
//calculate new amount for specified year
amount = principal *
((decimal)Math.Pow(1.0 + rate, year));
//display the year and the amount
Console.WriteLine("{0,4}{1,20:C}", year, amount);
}
Это код, который я до сих пор ...
long amount; //amount on deposit at end of each year
long principal = 100000; //initial amount before interest
long rate = 5; //interest rate
long number = 100;
//display headers
Console.WriteLine("Year{0,20}", "Amount on deposit");
//calculate amount on deposit for each of ten years
for (int year = 1; year <= 10; year++)
{
//calculate new amount for specified year
amount = principal *
((long)Math.Pow(100 + rate, year));
amount /= number;
number *= 10;
//display the year and the amount
Console.WriteLine("{0,4}{1,20}", year, amount);
Он получает некоторые из нужных чисел, но потом начинает выплевывать отрицательные числа по какой-то причине.
Как вы изменили код? Каковы фактические сообщения об ошибках? – geoffspear
Возможно, вам следует начать с рекомендации, приведенной в описании проблемы. Я вижу множественное использование типов данных, отличных от int и долгое время в вашем коде. –
Я отредактировал свое оригинальное сообщение, чтобы включить код, который у меня есть. –