一本关于Java的书中引用了一句话:“我建议对实数坚持使用double类型”,也建议“对于实数应该坚持使用double类型”。我不明白实数或实值是什么意思。实数,而不是什么?
发布于 2012-10-10 02:47:25
Real number,而不是integers。在数学中,实数可以是连续体上的任何值,例如4.2或pi。整数是实数的子集。
Here是Java原语。一些重要的数字包括当你想要一个整数时的int和当你想要允许小数的时候的double。如果你偏离了这些,你通常会有一个特定的理由这样做。
整数很容易用二进制表示,并且很容易指定可以用指定位数精确表示的特定整数范围。Java中的int使用32位,从-2,147,483,648到2,147,483,647。其他整数类型类似,但具有不同的位数。
然而,沿着连续体表示数字更加困难。在实数线上的任意两个点之间,有无限多个其他实数。因此,不可能精确地表示一个区间内的所有实数。解决这个问题的一种方法是使用floating-point numbers。我不会涉及太多细节,但基本上会丢失一些精度,因此在可以准确表示的内容上存在差距。对于许多目的来说,这是无关紧要的,但是对于像跟踪银行帐户余额这样的事情,这是很重要的。也许值得一读著名的What Every Computer Scientist Should Know About Floating-Point Arithmetic。
在Java语言中,解决这些问题的一种方法是使用像BigDecimal这样的东西。其他一些语言可能会提供其他原语作为替代。例如,C#有一个decimal数据类型,而Java没有。
发布于 2012-10-10 02:46:18
实数表示浮点,即double或float,而不是整数(int或long)
https://stackoverflow.com/questions/12806400
复制相似问题