对于此代码块:
int num = 5;
int denom = 7;
double d = num / denom;
Run Code Online (Sandbox Code Playgroud)
价值d
是0.0
.它可以通过强制转换来强制工作:
double d = ((double) num) / denom;
Run Code Online (Sandbox Code Playgroud)
但还有另一种方法可以获得正确的double
结果吗?我不喜欢铸造原始人,谁知道会发生什么.
我试图计算Windows中已用磁盘空间的百分比,而totaldrive表示Long中的C驱动器的总磁盘空间和Long中的freedrive dentoes可用空间.
long totaloccupied = totaldrive - freedrive;
Run Code Online (Sandbox Code Playgroud)
这里计算使用百分比
Long Percentageused =(totaloccupied/totaldrive*100);
System.out.println(Percentageused);
Run Code Online (Sandbox Code Playgroud)
print语句返回0.有人可以提供帮助,因为我没有得到所需的值
double wang = 3 / 2;
Log.v("TEST", "Wang: " + Double.toString(wang));
Run Code Online (Sandbox Code Playgroud)
Logcat输出......
07-04 09:01:03.908: VERBOSE/TEST(28432): Wang: 1.0
Run Code Online (Sandbox Code Playgroud)
我确信这有一个明显的答案,可能我只是整夜编码累了,但这让我很难过.
我有以下java代码
long x=25782
float y=x/1000000000
Run Code Online (Sandbox Code Playgroud)
而不是像我期望的那样y等于0.000025782,它等于0.0
我究竟做错了什么?
当我这样做时
double money = 2.3452;
DecimalFormat decFor = new DecimalFormat("0.00");
System.out.println(decFor.format(money));
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时
double money = 1/8;
DecimalFormat decFor = new DecimalFormat("0.00");
System.out.println(decFor.format(money));
Run Code Online (Sandbox Code Playgroud)
我得到:0.00
如何让Java显示0.12而不是0.00?