在double中使用CurrencyInstance而不是String

时间:2017-03-17 07:54:19

标签: java currency-formatting public-method

我想象的非常简单的问题,似乎无法找到正确的方法来做到这一点。

我有一种方法可以产生我的总成本"成本" (预先定义的' double'变量)作为美元金额:

import java.text.NumberFormat;

public class Example { 

private double cost = 3.5;

NumberFormat cash = NumberFormat.getCurrencyInstance();

public String getTotal(){
    String money = cash.format(cost);
    return money;
    }
}

这适用于&打印" $ 3.50"正确。

我想知道是否可以采取以下措施:

public double getTotal(){
    return cash.format(cost);
}

public double getTotal(){
    double money = cash.format(cost);
    return money;
}

显然上面没有编译,"无法从String转换为double"。我可以将NumberFormat作为double而不是String启动吗?

对我来说似乎完全没用,这是我试图关注的UML

+getTotal : double

2 个答案:

答案 0 :(得分:1)

要将字符串值更改为double,可以使用

String text = "12.34";
Double.parseDouble(text);

您可以在函数中使用它来获取双倍值

public double getTotalCost(){
   return Double.parseDouble(cash.format(cost));
}

答案 1 :(得分:0)

cash.format()返回一个字符串,因此您的方法segnature必须是:

public String getTotalCostAsString(){
    return cash.format(cost);
}

您无法使用public double,因为$3.50不是双倍。 double是没有符号的数值。