【发布时间】:2011-09-09 09:08:59
【问题描述】:
我有一个号码:94,800,620,800
Float 是 4 字节数据类型。 Int32 也是 4 字节数据类型。
float f = 94800620800; // ok
Int32 t = 94800620800; // error
请解释一下这个问题。为什么在使用 Int32 时出现错误。为什么我可以将此数字用于浮点数据类型,因为它们都是 4 字节数据类型。谢谢。
【问题讨论】:
-
Int32maxvalue 是 2,147,483,647,这就是错误的原因 -
浮点数是一个浮点值。 int 是一个整数值。
-
您应该正确地为您的问题命名。你愿意理解为什么用 4 字节表示的两种类型没有相同的限制。
-
我要补充一点,浮点数的精度为 7 位。试试
Console.WriteLine(94800620800f == 94800620801f);
标签: c# floating-point int32