-1

我对为什么浮点数可能存在舍入错误感到困惑。有人可以给我看一两个例子吗?它们的最小值和最大值是多少?这是否意味着我得到了最小值/最大值之间的每一个(不是每一个......如果不是多少?)数字和小数?

所以如果我想容纳一个国家的人口。即美国,我应该为此目的选择整数而不是浮点数还是它们没有效果。内存,效率,兼顾。如果不考虑,答案会是什么?人口计数将是整数。

这些问题非常初级,并且在网上有很长的详细信息,但我只是很难将它们拼凑在一起,因为它们变得非常复杂。

感谢您的时间。

PS:如果这个问题措辞不当,请通过评论告诉我。我将进行编辑,以便更清晰。

4

1 回答 1

1

不,您不能不使用浮点数。float和 int都是32 位存储类型,并且您在范围方面一无所获。

例如,如果尝试将signed int 的最大值2147483647作为浮点数给你2.14748e+09

因此,如果是人口计数,您将丢失3647.

long long在更长范围的情况下,您可以使用的最好的方法是 64 位类型 int( C/C++ 中的类型)。

编辑

关于效率,最有效的类型始终int是机器的字长。

浮点数要求机器额外使用数学处理单元。

因此,如果它是 32 位机器,则 int 32 位是最快和最有效的。

于 2012-12-08T04:04:13.237 回答