Java. Откуда лишние разряды в выводе?
Не пойму, в чем причина появления кучи разрядов в выводе. при float появляются девятки вместо нулей. код:
class sol_3_2{
static double f(double x) {
if (x > 2) return x;
else return -x;
}
public static void z(double a, double b, double h) {
System.out.println("x\t" + "f(x)\t");
for (double x = a; x <= b; x += h) {
System.out.println(x + "\t" + f(x) );
}
}
}
public class ex_3_2 {
public static void main(String[] args) {
double a = 4;
double b = 10;
double h = 0.7;
sol_3_2.z(a, b, h);
}
}
вывод:
Ответы (1 шт):
Автор решения: Alex Rudenko
→ Ссылка
Используйте форматированный вывод с точностью до 1 знака после десятичной точки %5.1f:
System.out.printf(" x\t f(x)%n");
for (double x = a; x <= b; x += h) {
System.out.printf("%5.1f\t%5.1f%n", x, f(x));
}
x f(x)
4.0 4.0
4.7 4.7
5.4 5.4
6.1 6.1
6.8 6.8
7.5 7.5
8.2 8.2
8.9 8.9
9.6 9.6
