为了账号安全,请及时绑定邮箱和手机立即绑定

多线程与printf,println

多线程与printf,println

道临 2016-11-01 20:24:38
package com.imooc.test; public class EnergySystem { private final double[] energyBoxs; public EnergySystem(int n,double initialEnergy){ this.energyBoxs = new double[n]; for(int i=0;i<energyBoxs.length;i++){ energyBoxs[i] = initialEnergy; } } public void Transfer(int from,int to,double amount){ if(energyBoxs[from]<amount){ return; } energyBoxs[from] = energyBoxs[from] - amount; energyBoxs[to] = energyBoxs[to] + amount; /*System.out.print(Thread.currentThread().getName()); System.out.printf("从%d转移%10.2f单位能量到%d", from, amount, to); System.out.printf(" 能量总和:%10.2f%n", getTotalEnergy());*/ System.out.print(Thread.currentThread().getName()); System.out.print("从"+from+"转移"+amount+"单位能量到"+ to); System.out.println(" 能量总和:"+ getTotalEnergy()); } public double getTotalEnergy(){ double sum = 0; for (double d : energyBoxs) { sum = sum + d; } return sum; } public int getBoxAmount(){ return energyBoxs.length; } }为什么用printf打印的比print和println打印的更加规范(上面只是部分代码,问题发生在《深入浅出的多线程》的“线程交互汽车人的担忧”那一课)视频中用的是printf,而我用println之后发现结果有很大不同,问题不是出在数值的精确度上(先无视精确度),这两种打印方法打印出来的东西’结构‘不同
查看完整描述

2 回答

已采纳
?
sntatas

TA贡献53条经验 获得超11个赞

print是输出

println是输出,并在结尾加换行

printf是格式化输入输出,由五种字符组成:

d:输出格式转换符(输出十进制表示的数字)

\n:转义字符(换行)

+:格式修饰符(输出数字符号)

%:%

其他:普通字符


查看完整回答
反对 回复 2016-11-01
?
道临

TA贡献80条经验 获得超126个赞

printf打印出来的更工整

println打印出来的乱

查看完整回答
反对 回复 2016-11-01
  • 2 回答
  • 0 关注
  • 1958 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信