#java #decimalformat
#java #десятичный формат
Вопрос:
Я только что написал лабораторную работу, которая должна подбрасывать две монеты 500 раз и подсчитывать, сколько раз были перевернуты орел и решка, и должна вычислять процент с точностью до десятой. Я помню шаблон для десятичного форматирования, но забыл, как его использовать. Кто-нибудь может помочь? Моя программа заключается в следующем:
import java.util.Scanner;
import java.text.DecimalFormat;
public class Lab97a
{
public static void main(String [] args)
{
Scanner input = new Scanner(System.in);
DecimalFormat accuracy=new DecimalFormat("0.0");
Dice coin;
int numCoin;
int numHeads;
int numTails;
int count;
double percentageHeads;
double percentageTails;
coin=new Dice(2);
numHeads=0;
numTails=0;
System.out.println("A coin is tossed 500 times. The results are asfollows: ");
for (count=1;count<=500;count=count 1)
{
numCoin=coin.roll();
if (numCoin==1)
{
numHeads =1;
}
if (numCoin==2)
{
numTails =1;
}
}
percentageHeads=numHeads/5;
percentageTails=numTails/5;
System.out.println("Heads was flipped " numHeads " times,
" percentageHeads "%.");
System.out.println("Tails was flipped " numTails " times, " percentageTails "%");
}
}
Комментарии:
1. Вот совет: в следующий раз задавайте свой актуальный вопрос, а не несвязанный материал о подбрасывании монет. Например, «Как мне напечатать число с плавающей запятой с точностью до одной десятичной цифры? Вот код, который у меня уже есть, но я хотел бы изменить форматирование: [короткий фрагмент кода здесь, может быть, 5 строк] «. Более короткие вопросы дают лучшие ответы.
2. @Greg Спасибо за совет. Я буду иметь это в виду для будущих вопросов.
Ответ №1:
Похоже, вам просто нужно отформатировать точность с помощью, например, accuracy.format(percentageHeads)
. Смотрите, NumberFormat.format(double)
это DecimalFormat
расширяется.
Ответ №2:
Для этого можно использовать метод String.format, как описано здесь:
System.out.println(String.format("Heads was flipped %d times, %.2f %%"), numHeads,percentageHeads);