这是一个基本问题,但我找不到答案.我已经研究了浮点运算和其他一些主题,但似乎没有任何东西可以解决这个问题.我确定我的术语错了.
基本上,我想要两个数量 - 完成和总数 - 并将它们分成一个百分比(已经完成了多少).数量是longs.这是设置:
long completed = 25000;
long total = 50000;
System.out.println(completed/total); // Prints 0
Run Code Online (Sandbox Code Playgroud)
我已经尝试将结果重新分配给双 - 它打印0.0.我哪里错了?
顺便提一下,下一步是将这个结果乘以100,一旦这个小障碍被推翻,我认为应该很容易.
顺便说一句,这里没有作业,只是普通的老字号(今天可能编码过多).
我正在寻找一个代表分数(有理数)的Java库.例如,如果我想存储分数,1/3那么它将不会被保存,0.33333因为它将失去其准确性.
以下是我希望在这样的库中找到的一些功能:
getNumerator()getDenominator()add(Rational r1, Rational r2),subtract(Rational r1, Rational r2),multiply(Rational r1, Rational r2),divide(Rational r1, Rational r2)isProper()getCommonDenominator(Collection<Rational> rationals)getSimplified()我可以自己实现这样一个库,虽然我想知道类似的东西是否已经存在.
编辑:如果库实现(除了上面)一些数论算法,如getEgyptianFractionsSum()等等,也会很好.