java:将float转换为String和String
我如何从float转换为string或string转换为float?
在我的情况下,我需要在2个值字符串(我从表中获得的值)和我计算的浮点值之间进行断言。
String valueFromTable = "25";
Float valueCalculated =25.0;
我尝试从float到string:
String sSelectivityRate = String.valueOf(valueCalculated );
但断言失败了
7个解决方案
350 votes
使用Java的Float类。
float f = Float.parseFloat("25");
String s = Float.toString(25.0f);
比较它总是更好地将字符串转换为float并比较为两个浮点数。 这是因为对于一个浮点数,有多个字符串表示,当作为字符串进行比较时它们是不同的(例如“25”!=“25.0”!=“25.00”等)
Petar Ivanov answered 2019-03-19T20:03:14Z
31 votes
浮点到字符串 - String.valueOf()
float amount=100.00f;
String strAmount=String.valueOf(amount);
// or Float.toString(float)
Float的字符串 - Float.parseFloat()
String strAmount="100.20";
float amount=Float.parseFloat(strAmount)
// or Float.valueOf(string)
adatapost answered 2019-03-19T20:03:44Z
5 votes
您可以尝试以下代码示例:
public class StringToFloat
{
public static void main (String[] args)
{
// String s = "fred"; // do this if you want an exception
String s = "100.00";
try
{
float f = Float.valueOf(s.trim()).floatValue();
System.out.println("float f = " + f);
}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}
}
在这里找到
JMax answered 2019-03-19T20:04:09Z
4 votes
我相信以下代码将有所帮助:
float f1 = 1.23f;
String f1Str = Float.toString(f1);
float f2 = Float.parseFloat(f1Str);
omt66 answered 2019-03-19T20:04:33Z
2 votes
这是一个可能的答案,这也将给出精确的数据,只需要改变所需形式的小数点。
这个方法是主要的* @param args无效 */ public static void main(String [] args){ // TODO自动生成的方法存根 尝试{ 浮点f1 = 152.32f; BigDecimal roundfinalPrice = new BigDecimal(f1.floatValue())。setScale(2,BigDecimal.ROUND_HALF_UP); System.out.println(“f1 - >”+ f1); String s1 = roundfinalPrice.toPlainString(); System.out.println(“s1”+ s1); } catch(例外e){ // TODO自动生成的catch块 e.printStackTrace(); } }}
输出将是
f1 --> 152.32
s1 152.32
Anupam answered 2019-03-19T20:05:17Z
1 votes
嗯,这种方法不是一个好方法,但很容易,不建议。 也许我应该说这是最不有效的方法和更糟糕的编码实践但是,使用起来很有趣,
float val=10.0;
String str=val+"";
空引号,向变量str添加空字符串,向字符串类型向上转换'val'。
Anmol Thukral answered 2019-03-19T20:05:48Z
0 votes
String str = "1234.56";
float num = 0.0f;
int digits = str.length()- str.indexOf('.') - 1;
float factor = 1f;
for(int i=0;i
for(int i=str.length()-1;i>=0;i--){
if(str.charAt(i) == '.'){
factor = 1;
System.out.println("Reset, value="+num);
continue;
}
num += (str.charAt(i) - '0') * factor;
factor *= 10;
}
System.out.println(num);
gpa answered 2019-03-19T20:06:05Z