【发布时间】:2016-10-13 09:07:22
【问题描述】:
所以我有这个代码,我一直在尝试调整它以处理任何数量的实数,似乎研究 MSFT 网站没有成功,所以我在这里作为我的最后手段。
char operation;
String calculation;
double num1, num2, ans;
Console.WriteLine("Place your calculation in the form (x'symbol'y)");
calculation = Console.ReadLine();
num1 = double.Parse(calculation[0].ToString());
num2 = double.Parse(calculation[2].ToString());
operation = calculation[1];
switch (operation)
{
case '+':
ans = num1 + num2;
Console.WriteLine(num1 + num2);
break;
case '-':
ans = num1 - num2;
Console.WriteLine(num1 - num2);
break;
case '/':
ans = num1 / num2;
Console.WriteLine(num1 / num2);
break;
case '*':
ans = num1 * num2;
Console.WriteLine(num1 * num2);
break;
}
【问题讨论】:
-
只是一个提示:string.Split() 方法应该很适合您的问题...
-
简单:
decimal result = (decimal)(new DataTable().Compute(Console.ReadLine(), null))。 ;-) -
当您将对象类型输出转换为双精度或十进制时会引发异常,结果必须从字符串中解析:
double result = double.Parse(new DataTable().Compute(Console.ReadLine(), null).ToString());@Tim Schmelter -
@Innat3:那么最好使用
Convert.ToDecimal(....),而不是效率较低且还可能导致本地化问题的字符串转换。所以将Compute-result 存储在object变量中,然后使用Convert.ToDecimal。 -
@Tim Schmelter 是的,这也有效!我不知道它更有效
标签: c# console-application calculator