Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法知道分数实际上是整数?_Java_Numbers_Fractions - Fatal编程技术网

Java 有没有办法知道分数实际上是整数?

Java 有没有办法知道分数实际上是整数?,java,numbers,fractions,Java,Numbers,Fractions,我使用apache库中的分数 Fraction fraction = Fraction.getFraction(0, 7, 13); fraction = fraction.multiplyBy(Fraction.getFraction(26)); System.out.print(fraction.getProperWhole()); 此代码返回14-这是预期结果 Fraction fraction = Fraction.getFraction(0, 7, 13); fractio

我使用apache库中的分数

 Fraction fraction = Fraction.getFraction(0, 7, 13);
 fraction = fraction.multiplyBy(Fraction.getFraction(26));
 System.out.print(fraction.getProperWhole());
此代码返回14-这是预期结果

 Fraction fraction = Fraction.getFraction(0, 7, 13);
 fraction = fraction.multiplyBy(Fraction.getFraction(27));
 System.out.print(fraction.getProperWhole());
它也是14分,但实际上它不是精确的14分


有没有办法知道分数实际上是整数呢?如果您查看apache文档,您会看到这一点

GetProperterWhole

public int getProperWhole()获取 分数

一个不合适的分数7/4可以分解成一个合适的分数1 3/4。 此方法从适当的分数返回1

如果分数为负数,如-7/4,则可分解为-1 3/4,所以这个方法返回正整数部分-1

返回:正确分数的整个分数部分,包括 标志

因此,您的结果是预期结果

如果你想知道分数是不是一个整数。 您可以这样做:

f.getNumerator() % f.getDenominator() == 0 ? true : false
因为四舍五入的分数作为它的分子要乘以分母的倍数

或者,您也可以使用
f.reduce()
减少分数,然后检查分母是否等于1


来源:

您似乎正在使用
org.apache.commons.lang.math.Fraction
。这有一个
getProperNumerator
方法,当且仅当分数等于整数时返回
0

那么什么是
分数
类?这不是一个标准的Java类,所以我们不知道它提供了什么功能。@JonSkeet来自“我使用apache库中的分数”,看起来是这样的,而且getReducedFraction会回答:如果分数可以减少为整数,分母是1@DenysSéguret:从哪条评论?@JonSkeet我将我的评论编辑到clarify@gstackoverflow你能更详细地解释一下你的问题是什么吗?因为它似乎是你所需要的,我读它的方式。分数.reduce()怎么样,然后检查分数。getDenonianator()==1也可以工作,我不知道reduce的实现情况,但我希望它会稍微快一点。在任何情况下,减少然后检查分母是否等于1well@gstackoverflow我更新了我的答案,这将给你检查分数是否是整数的方法