1

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

4

3 回答 3

3

最简单的是

double dt = 800.0/9177;

或者

double dt = (double) 800 / 9177;
于 2013-03-09T22:04:03.190 回答
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;
于 2013-03-09T22:04:19.917 回答
0
double dt = 800D / 9177;

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

于 2013-03-09T22:04:32.710 回答