在java中为netbeans gui将双精度转换为字符串

在java中为netbeans gui将双精度转换为字符串,java,netbeans-8,Java,Netbeans 8,我希望total文本字段(txtotal)显示食品订单的运行总成本。但是,我得到一个错误,因为它说最后一行不正确,因为您无法将double转换为string。 我该怎么办 txtOrder.setText("Soup of the Day"); txtPrice.setText("€4.00"); total=total+crapClaws; txtTotal.setText(total); 只要写下: txtTotal.setText(String.value

我希望total文本字段(txtotal)显示食品订单的运行总成本。但是,我得到一个错误,因为它说最后一行不正确,因为您无法将double转换为string。 我该怎么办

    txtOrder.setText("Soup of the Day");
    txtPrice.setText("€4.00");
    total=total+crapClaws;
    txtTotal.setText(total);
只要写下:

txtTotal.setText(String.valueOf(total));
方法
setText
需要一个
String
值,但您给它一个
double
。你需要把它转换成双精度的。有些方法,如
System.out.println
,提供了方便的重载,这些重载采用了许多不同的类型,因此您可能习惯于这种“只工作”,但
setText
的情况并非如此

…顺便说一句,你可能想仔细检查一下今天的汤是否真的是垃圾爪

只要写:

txtTotal.setText(String.valueOf(total));
方法
setText
需要一个
String
值,但您给它一个
double
。你需要把它转换成双精度的。有些方法,如
System.out.println
,提供了方便的重载,这些重载采用了许多不同的类型,因此您可能习惯于这种“只工作”,但
setText
的情况并非如此

…顺便说一句,你可能想仔细检查一下今天的汤是否真的是垃圾爪

只要写:

txtTotal.setText(String.valueOf(total));
方法
setText
需要一个
String
值,但您给它一个
double
。你需要把它转换成双精度的。有些方法,如
System.out.println
,提供了方便的重载,这些重载采用了许多不同的类型,因此您可能习惯于这种“只工作”,但
setText
的情况并非如此

…顺便说一句,你可能想仔细检查一下今天的汤是否真的是垃圾爪

只要写:

txtTotal.setText(String.valueOf(total));
方法
setText
需要一个
String
值,但您给它一个
double
。你需要把它转换成双精度的。有些方法,如
System.out.println
,提供了方便的重载,这些重载采用了许多不同的类型,因此您可能习惯于这种“只工作”,但
setText
的情况并非如此


…顺便说一句,你可能想仔细检查一下今天的汤是否真的是垃圾爪

可以通过多种方式将double转换为字符串。以下任何一项都有效:

txtTotal.setText(String.valueOf(total));
txtTotal.setText(Double.toString(total));
txtTotal.setText("" + total);
第一个解决方案调用一个方法,该方法将double显式转换为字符串;最后一个解决方案使用了这样一个事实:Java允许您将任意值与字符串连接起来,并将字符串作为结果

尽管如此,您应该知道使用double表示货币值是一个非常糟糕的主意。double使用二进制浮点数,这意味着许多值无法精确表示。例如,0.1没有作为双精度的精确表示。如果您大量使用货币值进行计算,这几乎肯定会导致意外的结果


您应该使用
BigDecimal
表示货币值,或者在
long
int
中存储美分数。您可以通过多种方式将double转换为字符串。以下任何一项都有效:

txtTotal.setText(String.valueOf(total));
txtTotal.setText(Double.toString(total));
txtTotal.setText("" + total);
第一个解决方案调用一个方法,该方法将double显式转换为字符串;最后一个解决方案使用了这样一个事实:Java允许您将任意值与字符串连接起来,并将字符串作为结果

尽管如此,您应该知道使用double表示货币值是一个非常糟糕的主意。double使用二进制浮点数,这意味着许多值无法精确表示。例如,0.1没有作为双精度的精确表示。如果您大量使用货币值进行计算,这几乎肯定会导致意外的结果


您应该使用
BigDecimal
表示货币值,或者在
long
int
中存储美分数。您可以通过多种方式将double转换为字符串。以下任何一项都有效:

txtTotal.setText(String.valueOf(total));
txtTotal.setText(Double.toString(total));
txtTotal.setText("" + total);
第一个解决方案调用一个方法,该方法将double显式转换为字符串;最后一个解决方案使用了这样一个事实:Java允许您将任意值与字符串连接起来,并将字符串作为结果

尽管如此,您应该知道使用double表示货币值是一个非常糟糕的主意。double使用二进制浮点数,这意味着许多值无法精确表示。例如,0.1没有作为双精度的精确表示。如果您大量使用货币值进行计算,这几乎肯定会导致意外的结果


您应该使用
BigDecimal
表示货币值,或者在
long
int
中存储美分数。您可以通过多种方式将double转换为字符串。以下任何一项都有效:

txtTotal.setText(String.valueOf(total));
txtTotal.setText(Double.toString(total));
txtTotal.setText("" + total);
第一个解决方案调用一个方法,该方法将double显式转换为字符串;最后一个解决方案使用了这样一个事实:Java允许您将任意值与字符串连接起来,并将字符串作为结果

尽管如此,您应该知道使用double表示货币值是一个非常糟糕的主意。double使用二进制浮点数,这意味着许多值无法精确表示。例如,0.1没有作为双精度的精确表示。如果您大量使用货币值进行计算,这几乎肯定会导致意外的结果

您应该使用
BigDecimal
来表示货币值,或者在
long
int
中存储美分数
txtotal.setText(String.valueOf(total))
txtotal.setText(“+total”)
txtotal.setText(Double.toString(total))我自己,但是,我会使用NumberFormat货币实例,
NumberFormat.getCurr