2016-06-26 4 views
-5

Код:, что является точность с плавающей точкой Java по умолчанию

public static void main(String [] args) { 

    float f = 5.69f; 

    String floatStr = String.format("%.15f", f); 
    System.out.println(f); 
    System.out.println(floatStr); 
} 

Диафрагменное 5.69. The floatStr - 5.690000057220459. Есть ли точность по умолчанию для System.out.println?

+3

Ваше имя и вопрос не задают одно и то же. * «что такое точность по умолчанию для float java» и * «Есть ли точность по умолчанию для System.out.println?» * - это разные вопросы. –

ответ

1

float, сам по себе не имеет конкретной точности. Это число с плавающей запятой, в частности 32-разрядное двоичное число с плавающей запятой IEEE-754.

Re: Ваш println вопрос, это не println, это то, как поплавок преобразуется в String. Это охватывается JavaDoc для Float.toString(float):

Сколько цифр должны быть напечатаны для дробной части м или ? Должна быть хотя бы одна цифра, чтобы представлять дробную часть, а за ее пределами - столько, сколько нужно, и столько цифр, сколько необходимо для однозначного отличия значения аргумента от смежных значений типа float. То есть предположим, что x - это точная математическая величина, представленная десятичным представлением, полученным этим методом для конечного ненулевого аргумента f. Затем f должно быть значением float, ближайшим к x; или, если два значения с плавающей точкой одинаково близки к х, то е должен быть одним из них, и младшего значащего бита мантиссы в х должно быть 0.

Или положить его другой Кстати, по умолчанию String имеет только столько цифр, сколько необходимо, если бы вы взяли String и преобразовали обратно в float, вы получите то же значение float.

Смежные вопросы