如何在Java中将字符串数转换为两个三位小数?

时间:2014-09-20 19:40:27

标签: java string rounding

我正在尝试将字符串数转换为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作为输出。有谁知道我在这里做错了什么?

4 个答案:

答案 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);