我试图让这个 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
我试图让这个 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
你可以用这种简单的方式做到这一点。
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
由于这可能与金钱有关,我建议使用BigDecimal
. 不要对货币值进行浮点运算,因为从长远来看舍入误差是不可避免的,尽管它们可能不会出现在这种特殊情况下,使用printf
. 您的问题的准确解决方案是:
for (int i = 115; i < 350; i += 15) {
System.out.println(new BigDecimal(i).movePointLeft(2));
}
怎么样:
for(int i = 115; i<350; i+=15)
{
System.out.printf("%d.%02d%n", i / 100, i % 100);
}