0

我试图让这个 for 循环看起来好像它正在执行精确的算术运算,但我不太确定如何将我的 int(例如 115)打印为“假”双精度(例如 1.15)任何帮助都是赞赏。谢谢!

for(int i = 115; i<350; i+=15)
{
  System.out.print(i);
  //possibly printf? I'm not very familiar with the method
}//for
4

3 回答 3

4

你可以用这种简单的方式做到这一点。

System.out.print(i/100.0); // This will print 1.15, 1.3

但是,如果您想打印小数点后的 2 位数字,则需要执行此操作。

System.out.printf("%.2f",i/100.0);  // This will print 1.15, 1.30
于 2013-10-17T04:52:46.327 回答
0

由于这可能与金钱有关,我建议使用BigDecimal. 不要对货币值进行浮点运算,因为从长远来看舍入误差是不可避免的,尽管它们可能不会出现在这种特殊情况下,使用printf. 您的问题的准确解决方案是:

for (int i = 115; i < 350; i += 15) {
  System.out.println(new BigDecimal(i).movePointLeft(2));
}
于 2013-10-17T05:06:46.183 回答
0

怎么样:

  for(int i = 115; i<350; i+=15)
  {
      System.out.printf("%d.%02d%n", i / 100, i % 100);
  }
于 2013-10-17T04:59:54.483 回答