7

引用 Java 书籍中的一句话“我建议坚持为实数输入 double 类型”以及“对于实数值,您应该坚持使用 double 类型”。我不明白实数或值是什么意思...实数与什么相对?

4

2 回答 2

13

实数而不是整数。在数学中,实数可以是连续谱中的任何值,例如4.2或 pi。整数是实数的子集。

是Java原语。一些重要的数字包括int何时需要整数和double何时允许分数。如果你偏离了这些,你通常有一个特定的理由这样做。

整数很容易用二进制表示,并且很容易指定可以用指定位数精确表示的整数的特定范围。Java 中的 Anint使用 32 位并将您从 -2,147,483,648 变为 2,147,483,647。其他整数类型类似,但位数不同。

但是,沿连续体表示数字更加困难。在实数线上的任意两点之间,还有无穷多个其他实数。因此,不可能准确地表示一个区间中的所有实数。解决此问题的一种方法是使用浮点数。我不会过多介绍细节,但基本上会丢失一些精度,因此可以准确表示的内容存在差距。出于许多目的,这无关紧要,但对于跟踪银行账户余额之类的事情,这可能很重要。可能值得一读著名的What Every Computer Scientist Should Know About Floating-Point Arithmetic

在 Java 中,解决其中一些问题的一种方法包括使用类似BigDecimal. 其他一些语言可能会提供其他原语作为替代方案。例如,C# 有decimal数据类型,而 Java 没有。

于 2012-10-09T18:47:25.237 回答
11

实数表示浮点数,即doubleor float,而不是整数 ( intor long)

于 2012-10-09T18:46:18.437 回答