我想在console.WritLine中显示平均值的2个小数点。现在它显示了一个整数。
string input = "";
int total=0 ;
int numbersEntered =0 ;
double average=0.00 ;
total += Convert.ToInt32(input);
numbersEntered++;
average = (total / numbersEntered);
Console.WriteLine("Total: {0}\t Numbers Entered: {1}\t Average: {2:#.##}\t", total, numbersEntered, average);
Console.ReadKey();
答案 0 :(得分:2)
同时声明total
和numbersEntered
加倍。你使用int,然后用整数除整数将返回整数而不是带小数点后2位的double。
string input = "";
double total=0 ;
double numbersEntered =0 ;
double average=0.00 ;
total += Convert.ToInt32(input);
numbersEntered++;
average = (total / numbersEntered);
Console.WriteLine("Total: {0}\t Numbers Entered: {1}\t Average: {2:#.##}\t", total, numbersEntered, average);
Console.ReadKey();
答案 1 :(得分:1)
我认为这是C#?您可能希望添加标记以获得更好的答案。如果是,请尝试将此Console.WriteLine
替换为:
Console.WriteLine("Total: {0}\t Numbers Entered: {1}\t Average: {2:F2}\t",
total, numbersEntered, average);
答案 2 :(得分:0)
更改
average = (total / numbersEntered);
到
average = ((double)total / numbersEntered);
两个整数之间的运算符/
进行整数除法。只有在执行除法后,结果(商)才会从int
转换为double
,但到那时精度已经丢失。
我将其中一个操作数(左侧)从int
转换为double
;然后,自动转换右操作数(从int
到double
的转换是隐式的)。当/
运算符的操作数为double
时,执行浮点除法,这就是你想要的。