我有使用int变量存储十进制数的算法。我必须将两个十进制数相加。所以我想知道我可以避免重复转换代码,并使用具有相同转换代码的函数,只有不同的存储变量。
namespace structSimple
{
class Program
{
struct decimalanBroj
{
public int cijeliDio;
public int decimalanDio;
public int potencija;
};
static decimalanBroj baze()
{
String number = "100";
int fromBase = 16;
int toBase = 10;
String result = Convert.ToString(Convert.ToInt32(number, fromBase), toBase);
}
static void Main(string[] args)
{
decimalanBroj d = new decimalanBroj();
decimalanBroj e = new decimalanBroj();
Console.WriteLine("Unesite cijeli dio broj: ");
d.cijeliDio = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Unesite decimalna dio broj: ");
d.decimalanDio = Convert.ToInt32(Console.ReadLine());
d.potencija = d.decimalanDio.ToString().Length;
Console.WriteLine( d.cijeliDio + (d.decimalanDio * (Math.Pow(10, -d.potencija))));
Console.WriteLine("Unesite cijeli dio broj2: ");
e.cijeliDio = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Unesite decimalna dio broj2: ");
e.decimalanDio = Convert.ToInt32(Console.ReadLine());
e.potencija = e.decimalanDio.ToString().Length;
Console.WriteLine("Zbroj dva broja: {0}",
(d.cijeliDio + (d.decimalanDio * (Math.Pow(10, -d.potencija)))) +
(e.cijeliDio + (e.decimalanDio * (Math.Pow(10, -e.potencija ) ))));
}
}
}
答案 0 :(得分:0)
您可以使用执行计算的方法将结构更改为类:
public class decimalanBroj
{
public int cijeliDio;
public int decimalanDio;
public int potencija;
public int Calculate()
{
return cijeliDio + (decimalanDio * (Math.Pow(10, -potencija));
}
};
现在你可以在不复制代码的情况下进行计算:
decimalanBroj d = new decimalanBroj();
...
d.Calculate();
答案 1 :(得分:0)
添加方法为您完成:
static decimalanBroj GetDecimalanBroj()
{
var d = new decimalanBroj();
Console.WriteLine("Unesite cijeli dio broj: ");
d.cijeliDio = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Unesite decimalna dio broj: ");
d.decimalanDio = Convert.ToInt32(Console.ReadLine());
d.potencija = d.decimalanDio.ToString().Length;
Console.WriteLine(d.cijeliDio + (d.decimalanDio * (Math.Pow(10, -d.potencija))));
return d;
}
然后在Main()中调用方法:
decimalanBroj d = GetDecimalanBroj();
decimalanBroj e = GetDecimalanBroj();