如何划分两个多头并获得价值?

时间:2014-03-01 01:33:28

标签: java

我需要计算整数和长整数的概率。但我总是得到0。

int a = 234;
长b = 123453344L

浮动c = a / b;

如何在Java中正确使用它?

4 个答案:

答案 0 :(得分:5)

您需要将其中一个投射为float,或者从一开始就将其中一个变量声明为float。否则,Java的整数除法接管,并且int除以int必须是int,这也适用于long

float c = (float) a / b;

答案 1 :(得分:2)

您正在使用整数数学,然后将结果存储在浮点数中。

float c = ((float)a) / b; 

会给你一个浮动,但使用双打会更精确。

或使用BigDecimal

BigDecimal d = new BigDecimal(a).Divide(new BigDecimal(b));

答案 2 :(得分:2)

在非十进制值(整数和浮点数)之间进行除法,然后结果将不是十进制,然后它被转换为浮点数,但十进制信息已经丢失。

你可以在整个操作中使用十进制类型(float,double,BigDecimal),也可以在使用之前转换它们。

  float a = 234;
  float b = 123453344L;
  float c =  a/b;

  int a = 234;
  long b = 123453344L;
  float c = (float) a/b;

我希望这有帮助。

答案 3 :(得分:0)

这是实现此目标的另一种方法:

float c = a.floatValue()/ b.floatValue();