为什么Java中有int类型?
为什么Java中有int类型?唯一的数字类型不能是double(可能是float)?出于性能考虑和内存节省,您可以在double类型的变量中保留任何整数。。此外,数字是精确的,没有小数点,这一事实在很多情况下都非常方便。如果必须输入计划生育的子女数量,您认为需要小数点,还是自然数(没有小数点)就足够了?除此之外,还有性能方面的原因。浮点和双精度还有很多整数所没有的精度问题。为什么还要使用Java呢?直接转到机器代码。除了斯图尔图斯克的评论外,浮点算术有点像噩梦“你可以在double类型的变量中保留任何整数。”——试着比较为什么Java中有int类型?,java,Java,为什么Java中有int类型?唯一的数字类型不能是double(可能是float)?出于性能考虑和内存节省,您可以在double类型的变量中保留任何整数。。此外,数字是精确的,没有小数点,这一事实在很多情况下都非常方便。如果必须输入计划生育的子女数量,您认为需要小数点,还是自然数(没有小数点)就足够了?除此之外,还有性能方面的原因。浮点和双精度还有很多整数所没有的精度问题。为什么还要使用Java呢?直接转到机器代码。除了斯图尔图斯克的评论外,浮点算术有点像噩梦“你可以在double类型的变量中保
(double)5_000_000_000_0000; l
和(double)4_999_999_999_999; l
,看看你为什么错了。不,不是为了这个。整数和浮点数本质上是不同的。但是,如果我将一个没有十进制数字的数字保留在一个双精度值中,我想对这类变量的所有计算精度不会低于该变量为双精度时的精度?@user983447double
使用52位作为尾数,而long
使用所有64位作为整数。虽然您的数字不是很大,但计算(并非所有计算)将是准确的。当它们变大时,你会得到错误的结果。例如,(double)5_000_000_000_000_000L==((double)5_000_000_000_000_000L+1)
将返回true