我试图在java中划分两个数字 - 更具体地说,我有分数800/9177,并希望将其转换为double或float或w / e。我的问题是当我试图获得分数的值时,我得到0。
有人知道怎么做吗?
我的代码:
double dt = 800/9177;
float ft = 800/9177;
double dw = 800/122;
System.out.println("dt : " + dt + " ft: " + ft + " dw " + dw + " 800/9177 " + (800/9177));
它打印dt:0 ft:0 dw:6.0 800/9177 0 所以除dw之外的所有分数都是0。
答案 0 :(得分:3)
最简单的是
double dt = 800.0/9177;
或
double dt = (double) 800 / 9177;
答案 1 :(得分:0)
使用数据类型int
会导致int
数据丢失。像这样使用double
和float
数据类型
double dt = 800/9177.0;
float ft = 800/9177.0f;
double dw = 800/122.0;
可以像这样指定双号r
double d = (double) 123;
double d = 123.0; //default floating point type is double. use f for float
double d = 123d;
答案 2 :(得分:0)
double dt = 800D / 9177;
如果划分两个整数,则得到一个整数除法。要获得双重除法,其中一个操作数必须是双精度。