Java 如何将字符串(“95941634.164”)转换为浮点
当我将字符串95941634.164转换为浮点数并打印时,它的打印格式为9.5941632E7,而不是95941634.164 我尝试了以下转换方法Float.parseFloat和Float.valueOfJava 如何将字符串(“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
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;问题不在这里,问题在于浮点的尾数中的位数