C# 允许用户选择在计算器中显示整数或仅显示2位小数
我正在制作一个基本的计算器,我想知道如何让用户选择是要显示完整的结果,还是只显示两位小数的结果。例如,如果用户输入第一个数字4.213和第二个数字4.6321,方法“+”,那么控制台会询问“您希望显示整个结果还是将其四舍五入到2位小数”,用户可以在其中输入“是”或“否” 我不想让程序把小数取整,只想显示2个小数或整个数字 我在猜测“如果”和“否则”这句话会是一个不错的选择 代码:C# 允许用户选择在计算器中显示整数或仅显示2位小数,c#,C#,我正在制作一个基本的计算器,我想知道如何让用户选择是要显示完整的结果,还是只显示两位小数的结果。例如,如果用户输入第一个数字4.213和第二个数字4.6321,方法“+”,那么控制台会询问“您希望显示整个结果还是将其四舍五入到2位小数”,用户可以在其中输入“是”或“否” 我不想让程序把小数取整,只想显示2个小数或整个数字 我在猜测“如果”和“否则”这句话会是一个不错的选择 代码: 使用System.Collections.Generic; 名称空间控制台EAPP1 { 班级计划 { 私有静态in
使用System.Collections.Generic;
名称空间控制台EAPP1
{
班级计划
{
私有静态int-runda;
静态void Main(字符串[]参数)
{
列表编号=新列表();
字符串方法=”;
while(true)
{
循环:
尝试
{
添加(ConvStr(TakeUserInput(“第一个数字:”)));
}
抓住
{
Console.Clear();
WriteLine(“错误,再试一次。”);
Console.ReadLine();
后藤环;
}
Console.Clear();
卢普:
尝试
{
添加(ConvStr(TakeUserInput(“第二个数字:”));
}
抓住
{
Console.Clear();
WriteLine(“错误,再试一次。”);
Console.ReadLine();
goto looop;
}
Console.Clear();
做
{
方法=TakeUserInput(“选择方法:”);
Console.Clear();
Console.WriteLine(“错误(尾端加法(+)子行程(-)多路复用(*)samt除法(/)”;
}
而(!CheckMethod(Method));
Console.Clear();
**在这里,我希望用户选择是显示整数还是仅显示2位小数**
Console.WriteLine(“结果:”);
Console.WriteLine(计算(数字、方法));
WriteLine(“如果您希望继续使用此计算器,请按Enter键”);
Console.ReadLine();
数字。清除();
}
}
私有静态字符串TakeUserInput(字符串显示文本)
{
Console.Write(显示文本);
返回控制台ReadLine();
}
私有静态布尔校验方法(字符串方法)
{
开关(方法)
{
格“+”:
打破
案例“-”:
打破
案例“*”:
打破
案例“/:
打破
违约:
返回false;
}
返回true;
}
私有静态双计算(列表输入,字符串方法)
{
双答案=0;
开关(方法)
{
格“+”:
回答=输入[0]+输入[1];
打破
案例“-”:
应答=输入[0]-输入[1];
打破
案例“*”:
回答=输入[0]*输入[1];
打破
案例“/:
答案=输入[0]/输入[1];
打破
}
返回答案;
}
专用静态双ConvStr(字符串输入)
{
返回Convert.ToDouble(input=input.Replace(“.”,“,”));
}
}
}
可能是错误的,但您不能
1). 将整数(结果)转换为字符串
2). 对字符串使用.indexOf(“”)函数获取句点的位置
3). 检查索引+3是否在结果范围内,以避免出现任何错误(3也跳过该时段)
4). 使用.remove(index)函数删除新索引中的所有其他数字
5). 使用Convert.toInt32(字符串)获取其值
还有一个“Data.”something函数,它可以让你计算表达式的字符串表示的结果,如果这有什么帮助的话试试看,听起来不错。我不确定我会怎么做。我只知道我可能会使用if和else语句。
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
private static int runda;
static void Main(string[] args)
{
List<double> Numbers = new List<double>();
string Method = "";
while (true)
{
loop:
try
{
Numbers.Add(ConvStr(TakeUserInput("First Number:")));
}
catch
{
Console.Clear();
Console.WriteLine("Error, try again.");
Console.ReadLine();
goto loop;
}
Console.Clear();
looop:
try
{
Numbers.Add(ConvStr(TakeUserInput("Second Number:")));
}
catch
{
Console.Clear();
Console.WriteLine("Error, try again.");
Console.ReadLine();
goto looop;
}
Console.Clear();
do
{
Method = TakeUserInput("Choose method: ");
Console.Clear();
Console.WriteLine("Error (Endast Addition (+) Subtraktion (-) Multiplikation (*) samt division (/)");
}
while (!CheckMethod(Method));
Console.Clear();
**HERE IS WHERE I WOULD LIKE USER TO CHOOSE IF DISPLAY ENTIRE NUMBER OR ONLY 2 DECIMALS**
Console.WriteLine("Result:");
Console.WriteLine(Calc(Numbers, Method));
Console.WriteLine("If you wish to keep using this calculator press Enter.");
Console.ReadLine();
Numbers.Clear();
}
}
private static string TakeUserInput(string DisplayText)
{
Console.Write(DisplayText);
return Console.ReadLine();
}
private static bool CheckMethod(string method)
{
switch(method)
{
case "+":
break;
case "-":
break;
case "*":
break;
case "/":
break;
default:
return false;
}
return true;
}
private static double Calc(List<double> input, string method)
{
double Answer = 0;
switch (method)
{
case "+":
Answer = input[0] + input[1];
break;
case "-":
Answer = input[0] - input[1];
break;
case "*":
Answer = input[0] * input[1];
break;
case "/":
Answer = input[0] / input[1];
break;
}
return Answer;
}
private static double ConvStr(string input)
{
return Convert.ToDouble(input = input.Replace(".", ","));
}
}
}