这是一个基本问题,但我找不到答案.我已经研究了浮点运算和其他一些主题,但似乎没有任何东西可以解决这个问题.我确定我的术语错了.
基本上,我想要两个数量 - 完成和总数 - 并将它们分成一个百分比(已经完成了多少).数量是longs.这是设置:
long completed = 25000;
long total = 50000;
System.out.println(completed/total); // Prints 0
Run Code Online (Sandbox Code Playgroud)
我已经尝试将结果重新分配给双 - 它打印0.0.我哪里错了?
顺便提一下,下一步是将这个结果乘以100,一旦这个小障碍被推翻,我认为应该很容易.
顺便说一句,这里没有作业,只是普通的老字号(今天可能编码过多).
当我做这样的事情
int test = 5 + 3 * (4 - 1) / 2;
Run Code Online (Sandbox Code Playgroud)
我得到9.我怀疑这是因为int舍入.但是,当我这样做
float test = 5 + 3 * (4 - 1) / 2;
Run Code Online (Sandbox Code Playgroud)
我也得到9.然而,当我这样做
float test1 = 5;
float test2 = 4.5;
float test = test1 + test2;
Run Code Online (Sandbox Code Playgroud)
测试最终输出9.5.有人可以解释这背后的逻辑吗?为什么我在第二个例子中得不到9.5?谢谢.