java浮点转字符串_java:将float转换为String和String

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值