猿问

Android 无法正确获取值中带有“.”的字符串

我尝试检索包含十进制数字的字符串值,例如“3.5”。当尝试将它们检索到android时,它们会用引号移动,但是当传递包含没有小数点或没有点的数字的字符串时,不会发生这种情况,一些想法无需将int传递到数据库或无需转换“费率” “值转换为int?


通过这种方式,我尝试从数据库中获取字符串“rates”值


 String rating = (String) dataSnapshot.child("rates").getValue();

 int ratingint = Integer.valueOf(rating);


错误:


java.lang.NumberFormatException: Invalid int: "3.5"

这是在数据库中定义的

有只小跳蛙
浏览 105回答 2
2回答

GCT1015

改变这个: int ratingint = Integer.valueOf(rating);进入这个: double ratingint = Double.valueOf(rating);

烙印99

AnInteger 只能存储(因此解析)整数。您正在尝试解析十进制数,由于缺乏对整数值浮点的支持,这是不可能直接解析的。您可能想将其解析为 aDouble或 a Float。如果您确实需要它是一个int,则可以使用一些不同的数学函数将该十进制数舍入为整数。
随时随地看视频慕课网APP

相关分类

Java
我要回答