using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; /// @author Vesa Lappalainen /// @version 06.10.2012 /// /// Ohjelmassa vertaillaan tnt- ja double -tyyppien. /// public class IntVsDouble { /// /// Otetaan aikaa summaamisesta /// /// ei käytössä public static void Main(string[] args) { // Lasketaan intillä const int MONTAKO = 100000000; // Montako kertaa merkkijonoja yhdistellään Stopwatch sw = Stopwatch.StartNew(); int isumma = 0; for (int i = 0; i < MONTAKO; i++) { isumma = isumma + 3*i+5; } sw.Stop(); double milliseconds = sw.Elapsed.TotalMilliseconds; System.Console.WriteLine("Int {0,7:##0.000} s {1}", milliseconds / 1000,isumma); sw.Reset(); // long sw.Start(); long lsumma = 0; for (long i = 0; i < MONTAKO; i++) { lsumma += 3L * i + 5L; } sw.Stop(); milliseconds = sw.Elapsed.TotalMilliseconds; System.Console.WriteLine("Long {0,7:##0.000} s {1}", milliseconds / 1000, lsumma); sw.Reset(); // float sw.Start(); double fsumma = 0; for (int i = 0; i < MONTAKO; i++) // indeksi int koska float ei mahdu { fsumma += 3.0f * i + 5.0f; } sw.Stop(); milliseconds = sw.Elapsed.TotalMilliseconds; System.Console.WriteLine("Float {0,7:##0.000} s {1}", milliseconds / 1000, fsumma); sw.Reset(); // double sw.Start(); double dsumma = 0; for (double i = 0; i < MONTAKO; i++) { dsumma += 3.0*i+5.0; } sw.Stop(); milliseconds = sw.Elapsed.TotalMilliseconds; System.Console.WriteLine("Double {0,7:##0.000} s {1}", milliseconds / 1000,dsumma); sw.Reset(); // decimal sw.Start(); decimal dssumma = 0; for (decimal i = 0; i < MONTAKO; i++) { dssumma += (decimal)3 * i + (decimal)5; } sw.Stop(); milliseconds = sw.Elapsed.TotalMilliseconds; System.Console.WriteLine("Decimal {0,7:##0.000} s {1}", milliseconds / 1000,dssumma); System.Console.ReadKey(); } }