C#中int、long、float、double、decimal最大值最小值
最近在将java上写的一个简单的表达式求值计算器移植到Windows Phone 8,java中double的精度问题是很明显的,解决办法是改用BigDecimal类。所以觉得C#中用double也是不太好的。 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