c#没有告诉我整个结果
早上好 我有以下问题,我是一名学生,需要在Visual Studio 2012中解决一个练习 我需要写一个算法,请求50美元、100美元、200美元和500美元、1000美元和1000美元、2000美元、5000美元、10000美元、20000美元和50000美元的硬币数量,并显示当天收集的总金额 我必须在Windows窗体中执行此操作。 我试图这样做,但我的结果仅显示结果中的前3位数字。我认为这是错误的,但后来我在计算器中这样做了,如果只考虑前3位数字,结果实际上是正确的。但是,我希望它显示操作的所有数字 下面是我的尝试c#没有告诉我整个结果,c#,C#,早上好 我有以下问题,我是一名学生,需要在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
模棱两可的组合了。我编辑了我的答案,将其包括在内,谢谢你的评论