Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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.lang.numberformatexception:";10.00“;_Java_Spring_String_Type Conversion - Fatal编程技术网

将字符串转换为浮点:输入字符串的java.lang.numberformatexception:";10.00“;

将字符串转换为浮点:输入字符串的java.lang.numberformatexception:";10.00“;,java,spring,string,type-conversion,Java,Spring,String,Type Conversion,所以基本上我希望我的浮点数价格(例如:-20.0)是20.00,再加上一个零。因此,我在下面尝试做的是首先添加一个额外的零,这将导致将其转换为字符串,然后将其转换回float,因为我的对象类型需要将其存储为20.00作为float Float lowest=productDetail1.getProductSummary().getPrice().getLowest(); String lowestPrice=String.format(“$%.2f”,最低); 试一试{ Float float

所以基本上我希望我的浮点数价格(例如:-20.0)是20.00,再加上一个零。因此,我在下面尝试做的是首先添加一个额外的零,这将导致将其转换为字符串,然后将其转换回float,因为我的对象类型需要将其存储为20.00作为float

Float lowest=productDetail1.getProductSummary().getPrice().getLowest();
String lowestPrice=String.format(“$%.2f”,最低);
试一试{
Float floatVal=Float.valueOf(lowerstprice.floatValue();
productDetail1.getProductSummary().getPrice().setLowest(floatVal);
}捕获(数字格式){
LOGGER.error(“数字格式异常”+e.getMessage());
}
所以我调试了它,发现前两行代码工作正常,但在第3行抛出了一个错误:-

Float floatVal=Float.valueOf(lowestPrice.floatValue()

我得到的错误是:- java.lang.numberformatexception用于输入字符串:“$10.00”


我希望有人能帮我。编写代码示例将有助于解决此问题。

无法将
$
作为数字的一部分进行解析。您需要在解析字符串之前将其从字符串中删除。
比如说

Float floatVal = Float.valueOf(lowestPrice.substring(1)).floatValue();

在你的
最低价格中有一个美元符号。为什么你需要它是.00作为浮动?它只是一个显示器,您可以在显示器上用
%.2f
转换它time@Greedo我需要在html中显示它,我将它作为model.attribute发送,所以我需要在java中将它转换为.00本身
20.0
20.00
是完全相同的
float
数字。您不能让
浮点值
等于
20.00
,也不能不等于
20.0
。现在,
“20.0”
“20.00”
是相同数字的不同字符串表示形式。浮点没有精度(点后的小数),只是一个近似值,1000*x其中x为0.1将显示近似误差。还有一个你被绊倒的美元角色。试试BigDecimal。好的,我试过了,但我还是把它转换回了float。,值又变成了20.0,而不是20.00,你有什么解决办法吗@Turamarth
20.0
20.00
是完全相同的
float
数字。您不能让
浮点值
等于
20.00
,也不能不等于
20.0
。现在,
“20.0”
“20.00”
是相同数字的不同字符串表示形式。是的,thnx,但我必须创建一个bean类,并将值“20.00”作为字符串发送。