Java 双变量 DecimalFormat 在 if 语句中不起作用

问题描述 投票:0回答:1

我正在使用

java.text.DecimalFormat
。 当我使用这种格式打印双变量时,它运行良好。 但是当我在
if
语句中尝试相同的操作时,它给出了错误。

DecimalFormat df = new DecimalFormat("#.##");
double a = 2.3333;
System.out.print(df.format(a));

显示

2.33
, 但在
if
语句中,却给出了错误。

DecimalFormat df = new DecimalFormat("#.##");
double a = 2.3333;
if(df.format(a)==2.33){
  System.out.println("aa");
}

表演

if(df.format(a)==2.33){
               ^
  first type:  String
  second type: double
1 error
java if-statement double decimalformat println
1个回答
0
投票

这是因为

DecimalFormat.format()
方法的返回类型是
String
(如文档中所述,并且不能直接在
double
语句中与
if-else
进行比较。

尝试将

String
转换回数字:

或直接比较两者为

String
:

© www.soinside.com 2019 - 2024. All rights reserved.