比较C#.net 4.0中的float和double的有趣性能结果

时间:2010-10-18 04:07:40

标签: .net c#-4.0

我制作了一个小型测试程序,可以增加并增加1000万个数字。使用浮动它总是需要51毫秒。使用double时,编译之间需要210到3310ms(3310ms只发生在每10次编辑中)。这是怎么回事?

private void button1_Click(object sender, RoutedEventArgs e)
        {
            DateTime now = DateTime.Now;
            testCalc(1f,2f,3f);
            System.Diagnostics.Debug.Print((DateTime.Now-now).TotalMilliseconds.ToString());
            now = DateTime.Now;
            testCalcDouble(1, 2, 3);
            System.Diagnostics.Debug.Print((DateTime.Now - now).TotalMilliseconds.ToString());

        }

        private void testCalc(float a, float b, float c)
        {
            for (int i = 0; i < 10000000; i++)
            {
                a++;
                c--;
                float d = (a + b) * c;
            }
        }

        private void testCalcDouble(double a, double b, double c)
        {
            for (int i = 0; i < 10000000; i++)
            {
                a++;
                c--;
                double d = (a + b) * c;
            }
        }

1 个答案:

答案 0 :(得分:0)

问题已关闭:仅在调试器中运行时才会发生