まいすの雑記帳

日記とかメモとか報告とか。ほんと雑記。

C# 値型の下限と上限

(値型とは言っても、下限や上限が気になるようなもののみで、byteやcharなどは含んでいません...)

short.MinValue = -32768
short.MaxValue = 32767
ushort.MinValue = 0
ushort.MinValue = 65535
int.MinValue = -2147483648
int.MaxValue = 2147483647
uint.MinValue = 0
uint.MinValue = 4294967295
long.MinValue = -9223372036854775808
long.MaxValue = 9223372036854775807
ulong.MinValue = 0
ulong.MinValue = 18446744073709551615
float.MinValue = -340282346638528859811704183484516925440
float.MaxValue = 340282346638528859811704183484516925440
double.MinValue = -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368
double.MaxValue = 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368
decimal.MinValue = -79228162514264337593543950335
decimal.MaxValue = 79228162514264337593543950335

float や double の表示には BigInteger を使用しました。

今回の出力に使用したコードは以下。(参照に System.Numerics を追加する必要があります)

using System;
using System.IO;
using System.Text;
using System.Numerics;

public class Program {
  public static void Main() {
    using (var sw = new StreamWriter("MinValueAndMaxValue.txt", false, Encoding.UTF8)) {
      sw.WriteLine("{0} = {1}", "short.MinValue", short.MinValue);
      sw.WriteLine("{0} = {1}", "short.MaxValue", short.MaxValue);
      sw.WriteLine("{0} = {1}", "ushort.MinValue", ushort.MinValue);
      sw.WriteLine("{0} = {1}", "ushort.MinValue", ushort.MaxValue);
      sw.WriteLine("{0} = {1}", "int.MinValue", int.MinValue);
      sw.WriteLine("{0} = {1}", "int.MaxValue", int.MaxValue);
      sw.WriteLine("{0} = {1}", "uint.MinValue", uint.MinValue);
      sw.WriteLine("{0} = {1}", "uint.MinValue", uint.MaxValue);
      sw.WriteLine("{0} = {1}", "long.MinValue", long.MinValue);
      sw.WriteLine("{0} = {1}", "long.MaxValue", long.MaxValue);
      sw.WriteLine("{0} = {1}", "ulong.MinValue", ulong.MinValue);
      sw.WriteLine("{0} = {1}", "ulong.MinValue", ulong.MaxValue);
      sw.WriteLine("{0} = {1}", "float.MinValue", (BigInteger)float.MinValue);
      sw.WriteLine("{0} = {1}", "float.MaxValue", (BigInteger)float.MaxValue);
      sw.WriteLine("{0} = {1}", "double.MinValue", (BigInteger)double.MinValue);
      sw.WriteLine("{0} = {1}", "double.MaxValue", (BigInteger)double.MaxValue);
      sw.WriteLine("{0} = {1}", "decimal.MinValue", decimal.MinValue);
      sw.WriteLine("{0} = {1}", "decimal.MaxValue", decimal.MaxValue);
    }
  }
}