在Java中生成长变量返回十进制答案

在Java中生成长变量返回十进制答案,java,Java,如何使长返回小数 long i = 10; long g = 1028; long gf =(long) i/ (long)g; System.out.println(gf) 目前的答复: 0 期望答案: 0.001 // round to 0.000 整数算术截断除法的小数部分。您需要一个double,并且需要将操作数强制转换为double,以创建浮点结果: double gf = (double) i / g; 定义如下: 如果数值运算符的操作数中至少有一个为double类型,则

如何使长返回小数

long i = 10;
long g = 1028;

long gf =(long) i/ (long)g;

System.out.println(gf)
目前的答复:

0
期望答案:

0.001 // round to 0.000

整数算术截断除法的小数部分。您需要一个
double
,并且需要将操作数强制转换为
double
,以创建浮点结果:

double gf = (double) i / g;
定义如下:

如果数值运算符的操作数中至少有一个为double类型,则使用64位浮点运算执行该运算,数值运算符的结果为double类型的值。如果另一个操作数不是double,则首先通过数字提升()将其加宽()以键入double

试试这个:

long i = 10;
long g = 1028;

double gf =  (double) i / (double) g;

System.out.println(gf);

根据定义,
long
是一个整数

但是,您可以将long视为定点小数,只要在必要时进行除法或乘法即可。例如,假设
gf
是百万分之一的计数

long i = 10;
long g = 1028;

long gf = (100000 * i ) / g;

System.out.println(String.format("%d.%06d", gf / 1000000, gf % 1000000));

或者,使用浮点类型,如
float
double
——始终注意舍入错误所造成的风险。

你不能,根据定义,
long
是整数。您可以改为使用
double
。错误。。。使用
Double
long
实际上是
long int
,所以不会出现小数点这很好读:叹气。。我已经试了好几个小时了,但什么都没有。谢谢你的快速回复。