Таблицы на Java
Public class Lab3 {
public static void main(String[] args) {
System.out.println("1 задание: ");
String format = "|%1$-12s|%2$-12s|%3$-12s|\n";
System.out.format(format, "------------", "------------", "------------");
System.out.format(format, " Sin(x)", "e^x/x*lg(x)", " x");
for(double x= Math.PI/15;x<Math.PI;x+=Math.PI/15) {
System.out.format(format,Math.sin(x),Math.exp(x)/(x*Math.log(x)),x);
System.out.format(format, "------------", "------------", "------------");
}
}
}
Хочу сделать простенькую табличку, которая выводит значения sin(x), (e^x)/(xlg(x)) и сам x. Но после запятых слишком много цифр. Хочу настроить формат для этих выражений sin(x),(e^x)/(xlg(x)) и x,но не понимаю как. Пробовал писать внутри System.out.format printf для каждого из выражений и формат "%.10f",но выводит неправильно. Недавно начал изучать Java,поэтому туплю сижу.
Ответы (2 шт):
Автор решения: Nowhere Man
→ Ссылка
Для вывода чисел с плавающей точек с заданной шириной следует использовать форматы:
%11f |- общая ширина числа 11, включая знак и десятичную точку/запятую, и 6 знаков после запятой по умолчанию%11.7f |- общая ширина числа 11, 7 знаков после запятой%12.8f|- общая ширина числа 12, 8 знаков после запятой (минус один пробел)
for (double x = Math.PI/15; x < Math.PI; x += Math.PI/15) {
System.out.format("|%11f |%11.7f |%12.8f|%n", Math.sin(x), Math.exp(x)/(x*Math.log(x)), x);
System.out.format(format, "------------", "------------", "------------");
}
Получится такая таблица:
|------------|------------|------------|
| Sin(x) |e^x/x*lg(x) | x |
|------------|------------|------------|
| 0.207912 | -3.7657531 | 0.20943951|
|------------|------------|------------|
| 0.406737 | -4.1708308 | 0.41887902|
|------------|------------|------------|
| 0.587785 | -6.4197073 | 0.62831853|
|------------|------------|------------|
...
| 0.207912 | 5.9501124 | 2.93215314|
|------------|------------|------------|
| 0.000000 | 6.4346282 | 3.14159265|
|------------|------------|------------|
Автор решения: Arty Morris
→ Ссылка
Можно форматировать при выводе
textview.setText(String.format("%.1f %s", переменная, текст));
Можно только переменную
textview.setText(String.format("%.1f", переменная));
здесь .1 - число после знаков