Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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#没有告诉我整个结果_C# - Fatal编程技术网

c#没有告诉我整个结果

c#没有告诉我整个结果,c#,C#,早上好 我有以下问题,我是一名学生,需要在Visual Studio 2012中解决一个练习 我需要写一个算法,请求50美元、100美元、200美元和500美元、1000美元和1000美元、2000美元、5000美元、10000美元、20000美元和50000美元的硬币数量,并显示当天收集的总金额 我必须在Windows窗体中执行此操作。 我试图这样做,但我的结果仅显示结果中的前3位数字。我认为这是错误的,但后来我在计算器中这样做了,如果只考虑前3位数字,结果实际上是正确的。但是,我希望它显示操

早上好

我有以下问题,我是一名学生,需要在Visual Studio 2012中解决一个练习

我需要写一个算法,请求50美元、100美元、200美元和500美元、1000美元和1000美元、2000美元、5000美元、10000美元、20000美元和50000美元的硬币数量,并显示当天收集的总金额

我必须在Windows窗体中执行此操作。 我试图这样做,但我的结果仅显示结果中的前3位数字。我认为这是错误的,但后来我在计算器中这样做了,如果只考虑前3位数字,结果实际上是正确的。但是,我希望它显示操作的所有数字

下面是我的尝试

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void txtBil50_TextChanged(object sender, EventArgs e)
        {

        }

        private void txbCalcu_Click(object sender, EventArgs e)
        {
            double mon1 = double.Parse(txtMo50.Text);
            double mon2 = double.Parse(txtMo100.Text);
            double mon3 = double.Parse(txtMo200.Text);
            double mon4 = double.Parse(txtMo500.Text);
            double mon5 = double.Parse(txtMo1000.Text);
            double bil1 = double.Parse(txtBil1000.Text);
            double bil2 = double.Parse(txtBil2000.Text);
            double bil3 = double.Parse(txtBil5000.Text);
            double bil4 = double.Parse(txtBil1000.Text);
            double bil5 = double.Parse(txtBil20.Text);
            double bil6 = double.Parse(txtBil50.Text);

            double multi1 = mon1 * 50;
            double multi2 = mon2 * 100;
            double multi3 = mon3 * 200;
            double multi4 = mon4 * 500;
            double multi5 = mon5 * 1000;
            double bill1 = bil1 * 1000;
            double bill2 = bil2 * 2000;
            double bill3 = bil3 * 5000;
            double bill4 = bil4 * 10000;
            double bill5 = bil5 * 20000;
            double bill6 = bil6 * 50000;

            double suma= mon1 + mon2 + mon3 + mon4 + mon5 + bil1 + bil2 + bil3 + bil4 + bil5 + bil6;
            txtCal.Text = ""+suma ;

        }
    }
}

我希望得到您的帮助,谢谢

我怀疑您的问题来自以下事实:

mon1 + mon2 + mon3 + mon4 + mon5 + bil1 + bil2 + bil3 + bil4 + bil5 + bil6
您实际想要求和的地方:

multi1 + multi2 + multi3 + multi4 + multi5 + bill1 + bill2 + bill3 + bill4 + bill5 + bill6
此外,正如nabuchodonossor所指出的,这条线:

double bil4 = double.Parse(txtBil1000.Text);
更可能是:

double bil4 = double.Parse(txtBil10000.Text);
// -------------------------------^^^^
同样,
bil5
bil6
分别用于输入
txtBil20
txtBil50
,人们期望
txtBil20000
txtBil50000


正如@V0ldek所指出的,存储这些值的更干净的方法可以是:

var coinCount = new Dictionary<int, double>();
coinCount[50] = double.Parse(txtMo50.Text);
coinCount[100] = double.Parse(txtMo100.Text);
// ...

var billCount = new Dictionary<int, double>();
billCount[1000] = double.Parse(txtBil1000.Text);
// ...

var coinAmount = new Dictionary<int, double>();
coinAmount[50] = 50*coinCount[50];
// ...

var billAmount = new Dictionary<int, double>();
billAmount[1000] = 1000*billCount[1000];
// ...
var coinCount=new Dictionary();
coinCount[50]=double.Parse(txtMo50.Text);
coinCount[100]=double.Parse(txtMo100.Text);
// ...
var billCount=新字典();
billCount[1000]=double.Parse(txtBil1000.Text);
// ...
var coinAmount=新字典();
硬币数量[50]=50*硬币计数[50];
// ...
var billmount=新字典();
billAmount[1000]=1000*billCount[1000];
// ...
当然,在这里你甚至可以存储不同的硬币和纸币的价值,这样你就不用像上面那样使用魔法数字了


是一段可运行的代码,用于说明上述内容。

您的预期结果与实际结果是什么?此外,你能稍微调整一下你的问题,把文本框的文本值改成你要输入的内容吗?或者把评论放在旁边,这样我们就可以更好地复制你的问题。你为什么不通过
multi5
使用
multi1
bill1
通过
bill6
使用
bill1
?@Rafalon这很可能解决问题如果我认为你在线路上犯了一个错误,双bil4=。。。数一数你的零我认为重要的一点是要提到,将变量命名为
bil1
bill1
是一个糟糕的想法,并且会导致这样的错误。应该将它们更改为更具描述性的内容。你能简单地看一下名字就知道
bil1
bill1
之间的区别吗?不那你给他们起错名字了。更不用说不幸的
ll1
模棱两可的组合了。我编辑了我的答案,将其包括在内,谢谢你的评论