0
public Foo(String name, double price)  
    {  
        this.name = name; 
        this.price = price;  
    }     
    // Overrride toString() for use of System.out.print() with Foo objects  
    public String toString()  
    {  
        return "Name: " + name + "\nPrice: $" + price + "\n";  
    }  

System.out.println(anyFoo); 只有在小数点后有两位数字的双精度时才会以正确的格式显示价格。如果我使用 return 语句,如何像 printf 一样格式化?

谢谢!

4

4 回答 4

0

您可以使用String.format. 阅读此信息:javadoc

于 2012-11-29T16:22:18.710 回答
0

利用String.format(String format, Object ... args)

于 2012-11-29T16:20:26.337 回答
0

尝试这样的事情(记得添加import java.text.*;

//... bla bla..
DecimalFormat myDecimalFormat = new DecimalFormat("#.##");
return "Name: " + name + "\nPrice: $" + myDecimalFormat .format(price)+ "\n"; 
于 2012-11-29T16:25:04.660 回答
0

您可以使用 DecimalFormat ;

DecimalFormat df = new DecimalFormat( "#,###,###,##0.00" );
double d = 123.456789;
System.out.println(df.format(d));
于 2012-11-29T16:25:13.553 回答