В статье новая математическая математика Java, часть 2: числа с плавающей запятой из IBM предлагает следующий фрагмент кода для решения этой проблемы (в поплавках, но я подозреваю, что это работает и для удвоений):
public class FloatCounter {
public static void main(String[] args) {
float x = 1.0F;
int numFloats = 0;
while (x <= 2.0) {
numFloats++;
System.out.println(x);
x = Math.nextUp(x);
}
System.out.println(numFloats);
}
}
У них есть этот комментарий об этом:
Оказывается, ровно 8,388,609 поплавок от 1,0 до 2,0 включительно; большая, но едва ли бесчисленная бесконечность вещественных чисел, существующих в этом диапазоне. Последовательные числа составляют около 0,0000001 друг от друга. Это расстояние называется ULP для единицы наименьшей точности или единицы в последнем месте.
В дополнение к уже упомянутому <pre>
теги, необходимо также использовать @code
аннотация JavaDoc, которая сделает жизнь намного легче когда дело доходит до проблем объектов HTML (в особенности с Дженериками), например:
* <pre>
* {@code
* Set<String> s;
* System.out.println(s);
* }
* </pre>
даст корректный вывод HTML:
Set<String> s;
System.out.println(s);
В то время как исключение @code
блок (или использование <code>
тег) приведут к HTML как это:
Set s;
System.out.println(s);
(Для ссылки, Java SE 8 описаний тега могут быть найдены здесь: Теги Javadoc )
Источник Java имеет много хороших примеров для этого. Вот пример от главы "String.java":
....
* is equivalent to:
* <p><blockquote><pre>
* char data[] = {'a', 'b', 'c'};
* String str = new String(data);
* </pre></blockquote><p>
* Here are some more examples of how strings can be used:
* <p><blockquote><pre>
* System.out.println("abc");
* String cde = "cde";
* System.out.println("abc" + cde);
* String c = "abc".substring(2,3);
* String d = cde.substring(1, 2);
* </pre></blockquote>
...
Попытайтесь заменить "код" "пред". Пред тег в HTML отмечает текст, как предварительно отформатировано и все переводы строки, и пробелы появятся точно, поскольку Вы вводите их.
Включите свой многострочный код с <pre></pre>
теги.
В Коде Visual Studio, по крайней мере, можно вынудить комментарий Javadoc уважать разрывы строки путем обертывания его в тройные обратные галочки, как замечено ниже:
/** ```markdown
* This content is rendered in (partial) markdown.
*
* For example, *italic* and **bold** text works, but [links](https://www.google.com) do not.
* Bonus: it keeps single line-breaks, as seen between this line and the previous.
``` */