私の特定の宿題の割り当てに問題があります。それはほとんど不可能のようです。質問はこのようになります...
「将来的には、正確な金銭計算をサポートする10進数のようなタイプを持たない他のプログラミング言語で作業する可能性があります。これらの言語では、整数を使用してそのような計算を実行する必要があります。整数のみを使用して複合インタレストを計算するようにアプリケーションを変更してください。 。すべての金額をペニーの整数として扱います。次に、除算と残りの演算をそれぞれ使用して、結果をドルとセントの部分に分割します。結果を表示するときに、ドルとセントの部分の間にピリオドを挿入します。」
指示に従い、整数を使用すると、何かを分割する前に、これらのオーバーフローエラーが発生します。誰かがこれを機能させる方法を知っていますか?変更が必要な元のコードは次のとおりです...
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);
それは正しい数のいくつかを取得しますが、その後、何らかの理由で負の数を吐き出し始めます。