特定の宿題で困っています。ほとんど不可能に思えます。質問は次のようになります...
「将来的には、正確な通貨計算をサポートする decimal のような型を持たない他のプログラミング言語を使用する可能性があります。これらの言語では、整数を使用してそのような計算を実行する必要があります。複利を計算するために整数のみを使用するようにアプリケーションを変更します。 . すべての金額をペニーの整数として扱います。次に、除算と剰余演算をそれぞれ使用して、結果をドルとセントの部分に分割します。結果を表示するときに、ドルとセントの部分の間にピリオドを挿入してください。
指示に従って整数を使用すると、何かを分割する前にこれらのオーバーフロー エラーが発生します。これを機能させる方法を知っている人はいますか?変更する必要がある元のコードは次のとおりです...
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);
}
これは私がこれまでに持っているコードです...
ulong amount; //amount on deposit at end of each year
ulong principal = 100000; //initial amount before interest
ulong rate = 5; //interest rate
ulong 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 *
((ulong)Math.Pow(100 + rate, year));
amount /= number;
number *= 10;
//display the year and the amount
Console.WriteLine("{0,4}{1,20}", year, amount);
いくつかの正しい数値を取得しますが、何らかの理由でゼロを吐き出し始めます。