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之后發現結果有很大不同,問題不是出在數值的精確度上(先無視精確度),這兩種打印方法打印出來的東西’結構‘不同
添加回答
舉報
0/150
提交
取消