将int乘以双c#

将int乘以双c#,c#,.net,operators,C#,.net,Operators,我想将textbox1(int)乘以textbox2(double),然后在textbox3中返回一个double 我正在做一个发票应用程序,需要乘以数量的比率,以获得金额到目前为止,我有这个 private void textbox2_TextChanged(object sender, system.EventArgs e) { int32 qty = int32.Parse(Textbox1.text); Double rate = Double.Parse(Textbox2.text

我想将textbox1(int)乘以textbox2(double),然后在textbox3中返回一个double 我正在做一个发票应用程序,需要乘以数量的比率,以获得金额到目前为止,我有这个

private void textbox2_TextChanged(object sender, system.EventArgs e)
{
 int32 qty = int32.Parse(Textbox1.text);
 Double rate = Double.Parse(Textbox2.text);
 Double amt = qty * rate;
 textbox3.text = amt.ToString();
}

我哪里出错了?

首先。当你和钱打交道时,一定要用十进制,而不是双精度。 对于小数,用户同时使用逗号和点作为小数分隔符总是存在问题

这个代码对我有用:

    int qty = Int32.Parse("2");
    Decimal rate = Decimal.Parse("3.14".Replace(".", ","));
    Decimal amt = qty * rate;
    Console.WriteLine(amt);

首先。当你和钱打交道时,一定要用十进制,而不是双精度。 对于小数,用户同时使用逗号和点作为小数分隔符总是存在问题

这个代码对我有用:

    int qty = Int32.Parse("2");
    Decimal rate = Decimal.Parse("3.14".Replace(".", ","));
    Decimal amt = qty * rate;
    Console.WriteLine(amt);
试试这个

  textBox3.Text = (Int32.Parse(textBox1.Text) * Double.Parse(textBox2.Text)).ToString();
试试这个

  textBox3.Text = (Int32.Parse(textBox1.Text) * Double.Parse(textBox2.Text)).ToString();

首先,您需要检查第一个文本框是否为空或空格。 然后,若您的第一个文本框是空的或空白的,那个么向用户提供适当的消息

请尝试以下示例:

if (!string.IsNullOrWhiteSpace(Textbox1.text))
{
    int qty = Int32.Parse(Textbox1.text);
    double rate = Double.Parse(Textbox2.text);
    Textbox3.text = (rate* (double) qty).ToString();
}
else
{
    //Give appropriate message to user for entering quantity in textbox 1
}

首先,您需要检查第一个文本框是否为空或空格。 然后,若您的第一个文本框是空的或空白的,那个么向用户提供适当的消息

请尝试以下示例:

if (!string.IsNullOrWhiteSpace(Textbox1.text))
{
    int qty = Int32.Parse(Textbox1.text);
    double rate = Double.Parse(Textbox2.text);
    Textbox3.text = (rate* (double) qty).ToString();
}
else
{
    //Give appropriate message to user for entering quantity in textbox 1
}


您面临的问题/错误是什么?与上面的问题相同,您是否有任何理由不能将它们都解析为double?只需在QT上使用double即可。您可能需要考虑的一件事是,如果文本框不包含数字,您将如何处理(例如,有人在其中写入文本)。因此,您可能需要查看
TryParse
方法,而不是普通的
Parse
;用替身解决物理问题。用十进制来解决财务问题;这就是它的设计目的。你面临的问题/错误是什么?与上面的问题相同,还有你不能将它们都解析为double的原因吗?只需在你的qt上使用double就可以了。你可能需要考虑的一件事是,如果文本框不包含数字(例如,有人在其中写入文本),你该如何处理。因此,您可能需要查看
TryParse
方法,而不是普通的
Parse
;用替身解决物理问题。用十进制来解决财务问题;这就是它的设计目的。这段代码是否只适用于十进制分隔符为逗号的地区?是的。如果您针对多个地区,最好使用适当的区域性处理。该代码是否仅适用于十进制分隔符为逗号的地区?是的。如果您针对多个区域设置,最好使用适当的区域性处理。我仍然得到4*10.00=40,而不是40.00。好的,我使用了这个,但将双精度改为十进制,并且有效。您可以像这样直接强制转换或格式化字符串。。。Textbox3.text=amt.ToString(“0.00”);对于此评论,请访问此链接。。。将
数量
铸造为
双倍
确实是不必要的。
double*int
的结果始终是
double
。我仍然得到4*10.00=40,而不是40.00。好的,我使用了这个,但将double改为decimal,效果很好。您可以像这样直接转换或格式化字符串。。。Textbox3.text=amt.ToString(“0.00”);对于此评论,请访问此链接。。。将
数量
铸造为
双倍
确实是不必要的。
double*int
的结果总是
double