Java Float“删除”逗号

时间:2014-10-08 14:21:02

标签: java int

我需要将float转换为int,就像删除了逗号一样。 例: 23.2343f - > 232343

private static int removeComma(float value)
{
    for (int i = 0; ; i++) {
        if((value * (float)Math.pow(10, i)) % 1.0f == 0.0f)
            return (int)(value * Math.pow(10, i));
    }
}

问题在于数字的四舍五入。例如,如果我传递23000.2359f它变为23000236,因为它将输入四舍五入为23000.236。

2 个答案:

答案 0 :(得分:8)

Java float没有那么精确,你可以用

看到
float f = 23000.2359f;
System.out.println(f);

输出

23000.236

要获得所需的输出,您可以使用double之类的

double d = 23000.2359;
String v = String.valueOf(d).replace(".", "");
int val = Integer.parseInt(v);
System.out.println(val);

输出是(请求的)

230002359

答案 1 :(得分:-3)

你必须找到一种方法来获得小数位后的数字1。假设它是n。然后将数字乘以10倍n

double d= 234.12413;
String text = Double.toString(Math.abs(d));
int integerPlaces = text.indexOf('.');
int decimalPlaces = text.length() - integerPlaces - 1;