В моем printf
мне нужно использовать %f
, но я не уверен, как обрезать до двух знаков после запятой:
Пример: получение
3.14159
для печати:
3.14
В моем printf
мне нужно использовать %f
, но я не уверен, как обрезать до двух знаков после запятой:
Пример: получение
3.14159
для печати:
3.14
Используйте это:
printf ("%.2f", 3.14159);
Вы можете использовать что-то вроде этого:
printf("%.2f", number);
Если вам нужно использовать строку для чего-то другого, кроме распечатки, используйте класс NumberFormat
:
NumberFormat formatter = new DecimalFormatter("#.##");
String s = formatter.format(3.14159265); // Creates a string containing "3.14"
Try:
printf("%.2f", 3.14159);
Ссылка:
как описано в Formatter, вам нужно объявить точность. %.2f
в вашем случае.
Используйте этот
printf ("%.2f", 3.14159);
Вы можете попробовать printf ( "%. 2f", [double]);
Я предлагаю изучить его с помощью printf, потому что для многих случаев этого будет достаточно для ваших нужд, и вам не нужно будет создавать другие объекты.
double d = 3.14159;
printf ("%.2f", d);
Но если вам нужно округление, обратитесь к этому сообщению
System.out.printf("%.2f", number);
НО, это будет округлять число до ближайшей десятичной точки, о которой вы упоминали. (Как и в вашем случае вы получите 3.14, так как округление 3.14159 до 2 десятичных точек будет 3.14)
Так как функция printf будет округлять числа, ответы на некоторые другие номера могут выглядеть так:
System.out.printf("%.2f", 3.14136); -> 3.14
System.out.printf("%.2f", 3.14536); -> 3.15
System.out.printf("%.2f", 3.14836); -> 3.15
Если вам просто нужно отключить десятичные числа и ограничить его десятичными числами k
без округления,
скажем k = 2.
System.out.printf("%.2f", 3.14136 - 0.005); -> 3.14
System.out.printf("%.2f", 3.14536 - 0.005); -> 3.14
System.out.printf("%.2f", 3.14836 - 0.005); -> 3.14