小数字java

时间:2013-03-09 22:01:51

标签: java floating-point numbers double fractions

我试图在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。

3 个答案:

答案 0 :(得分:3)

最简单的是

double dt = 800.0/9177;

double dt = (double) 800 / 9177;

答案 1 :(得分:0)

使用数据类型int会导致int数据丢失。像这样使用doublefloat数据类型

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;

如果划分两个整数,则得到一个整数除法。要获得双重除法,其中一个操作数必须是双精度。

相关问题