Я сделал небольшую тестовую программу, которая умножает и добавляет 10 миллионов чисел. С поплавком это всегда занимает 51мс. При использовании double это занимает от 210 до 3310 мс между компиляциями (3310 мс происходит только через каждые 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;
}
}