2014-09-23 75 views
0

请赐教,为什么这是不行的? :|这只是一个简单的输出线,上帝,我很沮丧。我知道这可能是我非常想念的东西,但我无法弄清楚。在java中打印一个简单的双数

double a = 155/124; 
System.out.printf("%f\n", a);  

它打印

1.00000 
+1

尝试double a = 155d/124d;而不是 – 2014-09-23 09:21:27

+1

thx,我确信它只是一个小鱼苗:)),thx的家伙,并抱歉重复 – Loki 2014-09-23 09:29:35

+0

以及很多新来的java不知道这一点......当你写一个数字它是*总是*一个整数,并且必须被转换为任何你需要的东西(例如:String str =“”+0; < - 整数或者即使你写的很长l = 2147483648; < - Integer.MAX_VALUE + 1将不起作用,因为2147483648又是一个整数!!)[okok - 它不是**总是**整数,但大多数情况下总是] – 2014-09-23 09:30:15

回答

0

试试这个

double a = 155d/124d ; 
System.out.printf("%f\n", a); 
2

它的工作就好了。只要记住两两件事:

  1. 你使用整数,计算的结果将是一个整数
  2. 舍入误差
0

那么,你是将两个整数没有铸造它明确地翻番。 将变量a加上(double):

double a =(double)155/124;

或者,您可以创建一个号码是双,如:

双A = 155/124.0;

希望这会有所帮助。