Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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 如何将字符串(“95941634.164”)转换为浮点_Java - Fatal编程技术网

Java 如何将字符串(“95941634.164”)转换为浮点

Java 如何将字符串(“95941634.164”)转换为浮点,java,Java,当我将字符串95941634.164转换为浮点数并打印时,它的打印格式为9.5941632E7,而不是95941634.164 我尝试了以下转换方法Float.parseFloat和Float.valueOf public static void main(String args[]) { String s = "95941634.164" ; Float f = Float.valueOf(s); System.out.println(f); System.o

当我将字符串95941634.164转换为浮点数并打印时,它的打印格式为9.5941632E7,而不是95941634.164

我尝试了以下转换方法Float.parseFloat和Float.valueOf

public static void main(String args[])
{
    String s = "95941634.164" ;
    Float f  = Float.valueOf(s);
    System.out.println(f);
    System.out.println(Float.parseFloat("95941634.164"));
}
实际:9.5941632E7预计为95941634.164

最接近95941634.164的浮动是95941632

Java使用科学符号来输出这个值


假设离您的号码最近的Double是95941634.164000045299530029296875,如果您使用Double,您的输出可能会更容易处理。但如果您想要精确的十进制结果,请使用十进制类型:例如BigDecimal。

您可以将printf与%f一起使用:

System.out.printf("value: %f\n", f);

您可以尝试将String.format转换为double。以下是一个例子:

public static void main(String args[])
{
    String s = "95941634.164" ;
    Float f= Float.parseFloat(s);
    Double d  = Double.parseDouble(s);
    System.out.println(String.format("%.3f", f));
    System.out.println(String.format("%.3f", d));
}
格式在使用float时舍入,但不适用于double。 以下是输出:

95941632.000                                                                                                                            
95941634.164 

嗨,阿尼尔,你可能想看看这个现存的问题。有些语言因其浮点精度而臭名昭著。如果要保持精度,应使用BigDecimal:BigDecimal b=new BigDecimal95941634.164;问题不在这里,问题在于浮点的尾数中的位数