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

时间:2016-02-05 11:40:59

标签: java numbers fractions

我使用apache库中的Fraction

 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

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

2 个答案:

答案 0 :(得分:3)

如果你看一下apache文档,你会看到这个

  

getProperWhole

     

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。

来源:https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/math/Fraction.html#getProperWhole()

答案 1 :(得分:1)

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