我正在尝试将字符串数转换为Java中的两个小数位。我在satckoverflow上看到很多帖子,但不知怎的,我得到了例外。
String number = "1.9040409535344458";
String result = String.format("%.2f", number);
System.out.println(result);
这是我得到的例外 -
java.util.IllegalFormatConversionException: f != java.lang.String
我想将1.904
作为输出。有谁知道我在这里做错了什么?
答案 0 :(得分:1)
您可以尝试使用NumberFormat
。例如:
String number = "1.9040409535344458";
NumberFormat formatter = new DecimalFormat("#0.000");
String result = formatter.format(Double.valueOf(number));
System.out.println(result);
答案 1 :(得分:0)
只需将数字声明为双倍:
Double number = 1.9040409535344458;
而不是
String number = "1.9040409535344458";
输出:
1.90
答案 2 :(得分:0)
您使用的格式不适用于String
。我建议您将String
转换为double
或将其存储为double
。将String
转换为double
,并将double
传递给String.format
。
答案 3 :(得分:0)
首先应将字符串转换为double,然后更改小数值
String number = "1.9040409535344458";
double result = Double.parseDouble(number);//converts the string into double
result = result *100;//adjust the decimal value
System.out.println(result);