Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在double而不是字符串中使用CurrencyInstance_Java_Currency Formatting_Public Method - Fatal编程技术网

Java 在double而不是字符串中使用CurrencyInstance

Java 在double而不是字符串中使用CurrencyInstance,java,currency-formatting,public-method,Java,Currency Formatting,Public Method,我想这是一个很简单的问题,只是似乎无法找到正确的方法 我有一种方法可以将我的总“成本”(一个预定义的“双精度”变量)生成为美元金额: import java.text.NumberFormat; public class Example { private double cost = 3.5; NumberFormat cash = NumberFormat.getCurrencyInstance(); public String getTotal(){ String mone

我想这是一个很简单的问题,只是似乎无法找到正确的方法

我有一种方法可以将我的总“成本”(一个预定义的“双精度”变量)生成为美元金额:

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);
}

显然,上面的代码没有编译,“无法从字符串转换为双精度”。我可以将数字格式初始化为双精度而不是字符串吗

对我来说似乎完全没有必要,这是我试图遵循的UML

+getTotal : double

要将字符串值更改为双精度值,可以使用

String text = "12.34";
Double.parseDouble(text);
您可以在函数中使用它来获得双倍值

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

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

您不能使用公共双精度
,因为
$3.50
不是双精度。double是一个没有curreny符号的数值。

请提供一个将此代码复制到IDE并运行它的尝试。你会看到它不起作用,所以它不是一个完整的例子。至少显示
成本的声明和定义以及你期望的结果和现金的定义。如果你给我们必要的信息,我将取消我的否决票。因此,编辑你的问题并添加信息。这样更好吗?为什么你应该将double格式化为字符串,而不是将其解析为double?那是不可能的sence@Jens这里双精度到字符串的转换在哪里完成?cost是一个double
(一个预定义的'double'变量)
,format返回op要求的字符串,所以我提供了代码。我们在这里回答被问到的问题,而不是根据个人问题和信仰否决任何事情。他提到“只是为了按照UML完成任务而尝试获取知识”,所以我向他提供了知识@Jens那么他为什么要将自己的函数写成
public double getTotalCost(){return cash.format(cost);}
我知道我的方法需要作为字符串返回,UML说+getTotalCost:double@BCarmar我不知道。Mybe ot应该只返回带有两个小数但没有货币符号的值?@BCarmar如果需要舍入值,请参见此处:感谢您的反馈,我将尝试使用小数格式
public String getTotalCostAsString(){
    return cash.format(cost);
}