如何转换小数点?

时间:2019-02-20 05:29:43

标签: java decimal

我正在尝试制作库存计算器。老实说,我不知道如何使用

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);
  }


 }

字符串出售无法正常工作。 NY根本没有显示。

这是我的文件。

  

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

1 个答案:

答案 0 :(得分:1)

您可以使用DecimalFormat类设置值的格式:

DecimalFormat df = new DecimalFormat("###.##");
System.out.println(df.format(PI));

OR

DoublesBigDecimal舍入 要将双精度舍入到小数点后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();
}

您可以使用上述方法在小数点的任意点取任何值。