问题 计算小数

鹰眼

成员
加入
2015年11月13日
消息
13
编程经验
Beginner
我正在尝试用十进制划分一个数字,但我得到一个错误。(divideByZeroException)

我的代码如下,错误是在此行上:

Res1 = Math.Round(((num3 * num4)/ 100)/ res,2);

我在计算中做错了什么?

这是我输入我的输入字段的数字:
num1:1.07801
Num2:1.06730.
num3:5000
num4:1
C#:
        private void button1_Click(object sender, EventArgs e)        {
            Decimal num1, num2, num3, num4, res, res1;
            string str1, str2, str3, str4 = null;
            str1 = textBox1.Text;
            str2 = textBox2.Text;
            str3 = textBox3.Text;
            str4 = textBox4.Text;


            if (String.IsNullOrEmpty(str1) || String.IsNullOrEmpty(str2) || String.IsNullOrEmpty(str3) || String.IsNullOrEmpty(str4))
            {
                MessageBox.Show("Please put values in all fields!");
            }
            else
            {
                if (str1.Contains(",") == true || str2.Contains(",") == true || str3.Contains(",") == true || str4.Contains(",") == true)
                {
                    MessageBox.Show("Please Use dots instead og comma!");
                }
                else
                {
                    num1 = Convert.ToDecimal(textBox1.Text);
                    num2 = Convert.ToDecimal(textBox2.Text);
                    res = Math.Round((num1 - num2), 1);
                    label1.Text = Convert.ToString(res) + " Pip";


                    num3 = Convert.ToDecimal(textBox3.Text);
                    num4 = Convert.ToDecimal(textBox4.Text);
                    Res1 = Math.Round(((num3 * num4)/ 100)/ res,2);
                    label6.Text = Convert.ToString(res1) + " lots";
                }
            }


            if (str1.Contains(",") == true || str2.Contains(",") == true)
                MessageBox.Show("Please use dots instead og comma!");          
        }
 
Last edited:

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,149
地点
挪威
编程经验
10+
调试“RES”值并查看它是什么,那么您应该理解为什么除以此值的原因为您提供DivideByZeroException。
 

鹰眼

成员
加入
2015年11月13日
消息
13
编程经验
Beginner
我有一个奇怪的问题。

当我在我的计算机上测试它的计算机上安装了Visual Studio时,它可以正常工作。
结果:
107.1点
0.47批次

当我在另一台计算机上运行它的结果。
10710000点
0.00

是我所做的代码中的东西吗?
 

juggalobrotha

工作人员
加入
2011年4月23日
消息
177
地点
兰辛,MI;美国
编程经验
10+
我有一个奇怪的问题。

当我在我的计算机上测试它的计算机上安装了Visual Studio时,它可以正常工作。
结果:
107.1点
0.47批次

当我在另一台计算机上运行它的结果。
10710000点
0.00

是我所做的代码中的东西吗?
您是否在两台机器上使用相同的exe文件?对于如此简单的数学计算,这是我唯一可以想到的,而不是更多地了解您的程序。
 

鹰眼

成员
加入
2015年11月13日
消息
13
编程经验
Beginner
我试图将.exe文件复制到USB键并从那里开始它,但仍然我从相同的.exe文件中获得两个不同的结果。

有人可以尝试从我的网站下载它来检查它是否显示了正确的数字?

forumpicture.jpg.jpg.

关联: 交易员角落
 
Last edited:

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,149
地点
挪威
编程经验
10+
您的屏幕截图显示您正在使用不同的版本。
 

juggalobrotha

工作人员
加入
2011年4月23日
消息
177
地点
兰辛,MI;美国
编程经验
10+
当我运行它并输入您获得的值时,您可以获得与Win10屏幕截图(左侧的值)相同的输出。
但我也在美国,Win7截图(右侧)看起来将被设置为不是我们的地方。
 

鹰眼

成员
加入
2015年11月13日
消息
13
编程经验
Beginner
当我运行它并输入您获得的值时,您可以获得与Win10屏幕截图(左侧的值)相同的输出。
但我也在美国,Win7截图(右侧)看起来将被设置为不是我们的地方。

好的,所以它是一个给出问题的本地设置。

我该如何解决这个问题?
 
最佳 底部