Java中的实数或值是什么意思?以及Java原始类型的基本解释

7

一本关于Java的书中有这样一段话:"我建议在实数中坚持使用double类型",另外还有"你应该在实值中坚持使用双倍类型"。我不明白什么是实数或实值... 实数与什么相对呢?

2个回答

13

实数整数 相对。在数学中,实数可以是连续区间内的任何值,例如4.2或圆周率π。整数是实数的子集。

这里是Java原始数据类型。对于数字,一些重要的数据类型包括当你需要整数时使用int,当你想允许小数时使用double。如果你偏离这些类型,通常有一个具体的原因。

整数在二进制中很容易表示,并且可以轻松指定可以用指定位数精确表示的整数范围。在Java中,int使用32位,可以得到从-2,147,483,648到2,147,483,647的值。其他整型类型也类似,但位数不同。

然而,表示沿着连续区间的数字更加困难,因为在实数线上的任意两点之间,存在无穷多个其他实数。因此,不可能在区间内精确地表示所有实数。解决这个问题的一种方法是使用浮点数。我不会深入讨论细节,但基本上会失去一些精度,因此无法精确表示某些数字。对于许多目的来说,这并不重要,但对于像跟踪银行账户余额这样的事情,这一点可能很重要。阅读著名的《计算机科学家应该了解的有关浮点算术的所有内容》可能会值得一看。

在Java中,解决这些问题的一种方法包括使用类似于BigDecimal的内容。其他一些语言可能提供其他基元作为替代品。例如,C#具有decimal数据类型,而Java则没有。


11

Real意味着浮点数,即doublefloat,而不是整数(intlong)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接