C#中int、long、float、double、decimal最大值最小值

C#中用作精度计算的一个数据类型是decimal,对应的类是Decimal。decimal的表示范围是:(-7.9 x 1028 - 7.9 x 1028) / (100 - 28),详见http://technet.microsoft.com/zh-cn/364x0z75.aspx。显而易见,decimal能表示的最大数比double要小得多

以下是各数据类型能表示的最大值和最小值:

  • int类型的最大值: 2147483647,最小值: -2147483648
  • uint类型的最大值: 4294967295,最小值: 0
  • byte类型的最大值: 255,最小值: 0
  • sbyte类型的最大值: 127,最小值: -128
  • short类型的最大值: 32767,最小值: -32768
  • ushort类型的最大值: 65535,最小值: 0
  • long类型的最大值: 9223372036854775807,最小值: -9223372036854775808
  • ulong类型的最大值: 18446744073709551615,最小值: 0
  • float类型的最大值: 3.402823E+38,最小值: -3.402823E+38
  • double类型的最大值: 1.79769313486232E+308,最小值: -1.79769313486232E+308
  • decimal类型的最大值: 79228162514264337593543950335,最小值: -79228162514264337593543950335

下面的代码说明了double和decimal表达精度能力的不同:

static void Main(string[] args)
        {
            String str1 = Console.ReadLine();
            String str2 = Console.ReadLine();
            double i = double.Parse(str1);
            double j = double.Parse(str2);
            Console.WriteLine("i * j = " + i * j);
            decimal k = decimal.Parse(str1);
            decimal l = decimal.Parse(str2);
            Console.WriteLine("k * l = " + k * l);
        }

输入:

0.333333333333333333333333333333333333333333
3

运行结果:

1
0.9999999999999999999999999999 (小数点后28位)
—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花