Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 允许用户选择在计算器中显示整数或仅显示2位小数_C# - Fatal编程技术网

C# 允许用户选择在计算器中显示整数或仅显示2位小数

C# 允许用户选择在计算器中显示整数或仅显示2位小数,c#,C#,我正在制作一个基本的计算器,我想知道如何让用户选择是要显示完整的结果,还是只显示两位小数的结果。例如,如果用户输入第一个数字4.213和第二个数字4.6321,方法“+”,那么控制台会询问“您希望显示整个结果还是将其四舍五入到2位小数”,用户可以在其中输入“是”或“否” 我不想让程序把小数取整,只想显示2个小数或整个数字 我在猜测“如果”和“否则”这句话会是一个不错的选择 代码: 使用System.Collections.Generic; 名称空间控制台EAPP1 { 班级计划 { 私有静态in

我正在制作一个基本的计算器,我想知道如何让用户选择是要显示完整的结果,还是只显示两位小数的结果。例如,如果用户输入第一个数字4.213和第二个数字4.6321,方法“+”,那么控制台会询问“您希望显示整个结果还是将其四舍五入到2位小数”,用户可以在其中输入“是”或“否”

我不想让程序把小数取整,只想显示2个小数或整个数字

我在猜测“如果”和“否则”这句话会是一个不错的选择

代码:

使用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(".", ","));
        }
    }
}