我正在尝试制作库存计算器。老实说,我不知道如何使用
DecimalFormat df2 = new DecimalFormat(".##");
正确。
我正在尝试将利润值更改为2个小数点,我不知道该怎么做。另外,根本没有显示String sellOut值。 您能帮我解决这个问题吗?
import java.util.Scanner;
import java.io.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.text.DecimalFormat;
public class Assignment
{
public static void main(String args[]) throws IOException
{
File dataFile = new File ("Feb13StockData.txt");
if(!(dataFile.exists()))
{
System.out.println("invalid file");
System.exit(0);
}
DecimalFormat df2 = new DecimalFormat(".##");
Scanner fileInput = new Scanner (dataFile);
String stock;
int pp, sp, ns;
double pc, sc;
String sell;
double profit;
//read first student record.
//for(int i = 1; i<= 4; i++)
System.out.println("Stock \t\t"+"PP \t\t"+"SP \t\t"+"PC \t\t"+"SC \t\t"+"NS \t\t"+"sellOut \t\t"+"profit \t\t");
while (fileInput.hasNext()){
stock = fileInput.nextLine();
pp = fileInput.nextInt();
sp = fileInput.nextInt();
pc = fileInput.nextDouble();
sc = fileInput.nextDouble();
ns = fileInput.nextInt();
sell = fileInput.nextLine();
profit = ProfitOut(pp,sp,pc,ns,sc);
printToScreen(stock,pp,sp,pc,sc,ns,sell,profit);
//System.out.println(student + "\t\t" + stYear + "\t\t" + gpa+ "\t\t" + credits);
//discard BOL CHARACTOR
fileInput.nextLine();
}
fileInput.close();
}
public static void printToScreen(String stockOut, int ppOut, int spOut, double pcOut, double scOut, int nsOut, String sellOut, double profit){
System.out.println(stockOut+ "\t\t" + ppOut +"\t\t" + spOut+"\t\t" +pcOut+"\t\t" +scOut+"\t\t"+ nsOut+"\t\t"+sellOut+"\t\t"+profit );
}
public static double ProfitOut (int pp, int sp, double pc, int ns, double sc)
{
double profit;
return profit = ((ns * sp) - sc) - ((ns *pp) + pc);
}
}
字符串出售无法正常工作。 N
或Y
根本没有显示。
这是我的文件。
AXC 25 54 9.11 6.98 20 ñ CLR 24 44 9.68 8.63 50 ñ UPQ 38 52 4.95 5.24 30 ÿ SLS 46 51 7.29 4.95 50 ÿ 拖把 20 32 4.95 6.58 50 ñ NRK 19 43 5.25 7.74 60 ñ 警察 48 29 6.62 5.06 30 ÿ SRY 19 52 4.95 9.32 50 ñ MPL 25 36 8.3 4.95 20 ÿ RRZ 24 51 4.95 5.46 20 ñ XON 14 33 4.95 7.41 40 ñ LSW 18岁 50 4.95 4.95 30 N
答案 0 :(得分:1)
您可以使用DecimalFormat类设置值的格式:
DecimalFormat df = new DecimalFormat("###.##");
System.out.println(df.format(PI));
OR
用Doubles
将BigDecimal
舍入
要将双精度舍入到小数点后n位,我们可以编写一个辅助方法:
private static double round(double value, int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = new BigDecimal(Double.toString(value));
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}
您可以使用上述方法在小数点的任意点取任何值。