java编程中怎么控制小数点后的位数?

public class pay{
public static void main(String[]args){
String client1="张三";
String client2="李四";
double T_shirtPrice=420.78; //t恤单价
int T_shirtNo=1; //t恤数量
double tennisPrice=45; //网球单价
int tennisNo=3; //网球数量
double T_shirtMoney = T_shirtPrice*T_shirtNo*0.95; //0.95是打折
double tennisMoney = tennisPrice*tennisNo;
//物品
System.out.println("所购商品:");
System.out.println("商品\t单价\t\t个数\t折扣");
System.out.println("T恤\t¥420.78\t\t1\t9.5");
System.out.println("网球\t¥45\t\t3\t无");
//购买清单
System.out.println("\n*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=");
System.out.println("客户\t消费金额");
System.out.println(client1+"\t¥"+T_shirtMoney); //怎样控制这个金额数的小数点后只有两位?
System.out.println(client2+"\t¥"+tennisMoney);
}
}

这个输出结果为:
所购商品:
商品 单价 个数 折扣
T恤 ¥420.78 1 9.5
网球 ¥45 3 无

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
客户 消费金额
张三 ¥399.74099999999993 //让它等于 399.74 怎样操作?
李四 ¥135.0

帮解决下!

//一般控制格式都是通过 DecimalFormat 来控制的

import java.text.DecimalFormat;

public class ControlBit {

public static void main(String[] argu){

double money = 399.74099999999993;

DecimalFormat df=new DecimalFormat("#.00");

System.out.println(df.format(money));

}

}

扩展资料

Decimalformat

import java.text.DecimalFormat;

public class NumberFormatDemo02

{

public static void main(String args[])

{

DecimalFormat df=new DecimalFormat("0.00");

String a = df.format(11.3265876);

String b = df.format(0.3526425);

System.out.println(a);

System.out.println(b);

}

}

参考资料:百度百科 Java

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-11
//一般控制格式都是通过 DecimalFormat 来控制的.下边是个例子.

import java.text.DecimalFormat;
public class ControlBit {
public static void main(String[] argu){
double money = 399.74099999999993;
DecimalFormat df=new DecimalFormat("#.00");
System.out.println(df.format(money));

}
}本回答被提问者采纳
第2个回答  2009-06-05
一楼二楼说的都没错
一楼的是格式控制 C语言是printf java也用过来了
二楼有点错误
System.out.println("df.format(d1)");
这个里面的""要去掉
应该是
System.out.println(df.format(T_shirtMoney));
第3个回答  2009-06-05
以下是抄来的,刚学完J2SE,DecimalFormat从来都没用过..

格式化化输出就OK
import java.text.io;
DecimalFormat df=new DecimalFormat("#.00");
System.out.println("df.format(d1)");
System.out.println("df.format(d2)");

参考资料:http://zhidao.baidu.com/question/22042003.html?si=1

第4个回答  2009-06-05
System.out.printf("%s\t ¥ %.2f\n",client1,T_shirtMoney);