Loading...
dimipan avatar dimipan 30 Точки

как да отпечатваме double или float числа на конзолата без последните излишни нули и дори без десетичната точка (запетая) ?

Въпросът ми е, има ли някакъв удобен начин за форматиране, при отпечатването double или float числа на конзолата, така че, последните цифри след десетичния раздилител, ако са нули да не се изписват, а дори и десетичната точка, ако няма други цифри?

Например:

4.5087000   -->    4.5087

15.023056   -->   15.023056

2.0000000   --->   2

-8.3810000   -->  -8.381

.....

Благодаря Ви, предварително за оказаното съдействие!

Тагове:
0
Module: Java Advanced 25/09/2017 12:16:40
todor0912 avatar todor0912 35 Точки

Можеш да използваш Space holders тоест примерно %.2f закръгля до втория знак и можеш съответно да сменяш числото в зависимост от знака, в случая ако искаш да е без числа след запетаята закръгляш до %.0f тоест да няма числа след нея в google има много статий и лист със всички Space holders можеш да потърсиш спестяват много писане и са много лесни за използване.

if (num < 10) {
    System.out.printf("Number is %.2f%n", num);

Ето най лесния възможен пример , като трябра да се съобразиш , че не е println a printf, иначе ще ти изведе грешка и запетая преди num  в случая. %n e space holder за разтояние и също е полезен.

-1
dimipan avatar dimipan 30 Точки

Здравей, todor0912

Пледполагам, не си прочел внимателно темата и въпроса ми.

Това, за което пишеш, се отнася за доста по-различен тип форматиране на float и double числа, който няма нищо общо с премахването на последните излишни нули при отпечатването им.

С %.2f, %.3f, %4f, %0f.... просто се фиксират предварително зададен брой цифри от float и double числа  за отпечатване, след десетичния разделител, като се използва и закръглане:

4.5087000   -->  %.2f   ->  4.51,    %.3f   ->  4.509,     %.5f  ->  4.50870;

15.023056   -->   %.1f   ->  15.0,  %.2f   ->  15.02,     %.4f  ->  15.0231;

2.0000000   --->   %.1f   ->  2.0,    %.2f   ->  2.00,      %.3f   ->   2.000,      %.0f    ->   2;

-8.3810000   -->   %.1f   ->  -8.4,    %.2f   ->  -8.38,   %.3f   ->   -8.381,   %.5f  ->  -8.38100;

 

Както виждаш, когато при изчисляване в задачата се изисква, резултата да се отпечата число, само със значещите цифри, няма как просто да използваш String.format("%.2f", doubleNumber);

Правилният и най-лесен начин, наистина се оказва класа DecimalFormat(), разгледай предишните постове!

Все пак, благодаря за вниманието smiley !

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.