使用string.format,双精度转换为字符串

时间:2013-11-23 17:42:54

标签: java string netbeans formatting

所以我在这里有些不知所措。我试图将我的字符串格式化为只有2位小数。我知道你在想什么,我必须把它们作为字符串才能将它们附加到我的JTextArea(这些是我的arrayList的一小部分)。所以我使用String.valueof()将双精度转换为字符串,这很好,但是我需要格式化它们才能打印出带有2位小数的字符串。我的演习等如下

class inventoryItem { //Delcare variables below

String itemName;
String newUnit;
String newFee;
String newValue;
String newInventoryValue;
int itemNumber;
int inStock;
double unitPrice;
double value;
double restockingFee;

double inventoryValue;

public inventoryItem(String itemName, int itemNumber, int inStock, double unitPrice) { //declare variables for this class
    this.itemName = itemName;
    this.itemNumber = itemNumber;
    this.inStock = inStock;
    this.unitPrice = unitPrice;
    restockingFee = .05 * value;
    stockValue();

}

public void stockValue() {
    value = unitPrice * inStock;
    restockingFee = .05 * unitPrice;
    inventoryValue = restockingFee + value;
    newUnit = String.valueOf((double) unitPrice);
    newFee = String.valueOf((double) restockingFee);
    newValue = String.valueOf((double) value);
    newInventoryValue = String.valueOf(inventoryValue);

我尝试过像

这样的事情

outputText.append("something = $" + (String.format("%.2f, newUnit))

但这似乎不起作用。有没有办法在使用String.valueOf时可以做到?

1 个答案:

答案 0 :(得分:2)

使用DecimalFormat

<强>示例:

double unitPrice = 1.23235;
java.text.DecimalFormat decimalFormat = new java.text.DecimalFormat( "#,###,###,##0.##" );
String formattedUnitPrice = decimalFormat.format(unitPrice);

输出将为1.23