所以id喜欢在c#中创建执行以下操作的税费计算器:
示例1:
Input:
1200.0 - amount loaned
10 - tax in percentage
3 - number of years in debt
Output:
Growth of debt throughout 3 years:
1200.0
1320.0
1452.0
1597.2
到目前为止,我有这个:
static int Mostra(int n, int p, int q)
{
int res = n + ((n * (p / 100)) * q);
Console.WriteLine("Crescimento da dívida ao longo de " + q.ToString() + " anos:");
}
static bool Validar(string s, out int i)
{
bool res = int.TryParse(s, out i);
if (!res)
i = 0;
return res;
}
static void Main(string[] args)
{
Console.WriteLine("Insira o valor do seu empréstimo em euros:");
string s1 = Console.ReadLine();
Console.WriteLine("Insira o valor correspondente à taxa de juro acordada:");
string s2 = Console.ReadLine();
Console.WriteLine("Insira o número de anos em que a dívida não foi paga:");
string s3 = Console.ReadLine();
string[] valores = new string[p];
int n;
int p;
int q;
if (Validar(s1, out n) && Validar(s2, out p) && Validar(s3, out q))
{
if (n >= 0 && p >= 0 && q >= 0 && p <= 100)
{
//Mostra(n, p, q);
}
else
Console.WriteLine("O valor introduzido é inválido.");
}
Console.ReadKey();
}
请记住,这是一个控制台应用程序。 我的问题是如何显示多年来的债务而不是最终结果。以及如示例所示如何以十进制显示它。如果可以帮助我,我很高兴:D
答案 0 :(得分:0)
如果要将结果显示为小数,则应使用decimal
数据类型而不是int
数据类型。
在最初的示例中,尽管您每年也要增加利息,尽管您的计算在整个时间段内都是固定利息,但该函数看起来应该更像
static int Mostra(decimal n, decimal p, int q)
{
Console.WriteLine("Crescimento da dívida ao longo de " + q.ToString() + " anos:");
decimal res = n;
for (int i = 1; i <= q; i++)
{
res+= res * (p / 100);
Console.WriteLine(res);
}
}
您还需要编辑Validar
方法以使用decimal.TryParse
处理小数转换,因为利率和金额应为小数以处理基于小数的计算-尽管年份仍然可以是整数< / p>
答案 1 :(得分:0)
在这里,我注意到有几件事有些古怪。您需要将Validar中的某些变量从int更改为doubles ...否则,如果您希望输入为x.0,则您的代码将无法处理.0,因为您要在int中查找int Validar方法。我已经修复了一些代码,以便您放入的所有int都能正常工作,并且您将以所需的格式获得输出。
using System;
public class Program
{
static void Mostra(double n, double p, double q)
{
//double res = n + ((n * (p / 100)) * q);
Console.WriteLine("Crescimento da dívida ao longo de " + q.ToString() + " anos: \n");
//Loop that increments each year for q number of years
for (int x = 0; x < q + 1; x++)
{
double res = 0;
res = n + ((n * (p / 100)) * x);
Console.WriteLine(res);
}
}
static double Validar(string s)
{
int x = int.Parse(s);
double res = (double)(x);
return res;
}
public static void Main(string[] args)
{
Console.WriteLine("Insira o valor do seu empréstimo em euros:");
string s1 = Console.ReadLine();
Console.WriteLine("Insira o valor correspondente à taxa de juro acordada:");
string s2 = Console.ReadLine();
Console.WriteLine("Insira o número de anos em que a dívida não foi paga:");
string s3 = Console.ReadLine();
double n = Validar(s1);
double p = Validar(s2);
double q = Validar(s3);
if (n >= 0 && p >= 0 && q >= 0 && p <= 100)
{
Mostra(n, p, q);
}
else
Console.WriteLine("O valor introduzido é inválido.");
}
}