所以我在这里有些不知所措。我试图将我的字符串格式化为只有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时可以做到?
答案 0 :(得分:2)
<强>示例:强>
double unitPrice = 1.23235;
java.text.DecimalFormat decimalFormat = new java.text.DecimalFormat( "#,###,###,##0.##" );
String formattedUnitPrice = decimalFormat.format(unitPrice);
输出将为1.23