2013-11-23 4 views
0

Так что я здесь как-то в убытке. Я пытаюсь отформатировать строки, чтобы их было всего 2 десятичных знака. Я знаю, что вы думаете, и я должен иметь их как строки, чтобы добавить их в JTextArea (это небольшая часть моего списка массивов). Поэтому я преобразовал двойники в строки, используя String.valueof(), который отлично работает, однако мне нужно отформатировать их, чтобы распечатать строку с двумя десятичными знаками. Мои delcarations и такие следующиеИспользование string.format с удвоением, преобразованным в строку

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?

ответ

2

Использование DecimalFormat

Пример:

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

Выход будет 1.23

+0

Так вы говорите, чтобы сделать это в момент печати его, или перед использованием String.valueOf()? Причина, по которой я спрашиваю, заключается в том, что она должна быть преобразована в строку до ее распечатки. – kerinr

+0

Да, я говорю, вам лучше форматировать ваше значение с помощью предварительно определенного десятичного формата. Попробуйте Google DecimalFormat. Это то, что вам нужно. – Devrim

+0

Я правильно ответил на ваш ответ, однако мне пришлось немного изменить это, чтобы заставить его работать. Я в конечном итоге импортировал DecimalFormat, а затем создал новый формат, как вы сказали выше. Однако, чтобы заставить его правильно распечатываться, мне пришлось сделать что-то вроде «formatted.format (unitPrice)», и это сработало как шарм. – kerinr

Смежные вопросы