java编程中怎么控制小数点后的位数?
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
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));
}
}
一楼的是格式控制 C语言是printf java也用过来了
二楼有点错误
System.out.println("df.format(d1)");
这个里面的""要去掉
应该是
System.out.println(df.format(T_shirtMoney));
格式化化输出就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