【发布时间】:2014-01-21 16:49:22
【问题描述】:
我一直在尝试编写一个函数isWhole,它被赋予一个双精度,并查看它是否是一个整数,如果它返回不带小数的值(作为 int?),否则返回 3 个小数地方(我可以用数字格式来做这部分。
我的问题是如何检查双精度数是整数还是递归小数?
【问题讨论】:
-
十进制数与其四舍五入的值有什么区别?
-
小数点。如何将双精度拆分为一个数组,遍历并检查是否有任何值是“。”
-
我不知道什么是“递归小数”,但如果你的意思是“重复小数”,比如 1/3 = 0.333333... 或 1/27 = 0.037037037... - - 你不能。
double无法准确表示像 1/3 这样的数字。计算机以二进制表示数字,double准确表示的每个数字都将采用 N/(2^M) 的形式,其中 N 和 M 是整数。并且任何这样的数字,如果它不是一个整数,将有一个十进制表示,终止。 -
@ajb 当然,“重复小数”是 IIRC,总是可以表示为整数的比率。然而,不幸的是,一旦数字被转换为 float/double,它就失去了它的重复字符。
标签: java if-statement double calculator