Професионална програма
Loading...
+ Нов въпрос
denkaty avatar denkaty 1 Точки

8. Math Power

Задача 8. Math Power
Условие ->
https://softuni.bg/trainings/resources/officedocument/49533/methods-lab-java-fundamentals-may-2020/2831

Ако реша задачата с int, получавам 70/100. Реша ли я с double, получавам 10/100. Не знам къде точно греша. В hints се споменава за DecimalFormat. Ще съм много благодарен, ако някой може да помогне.

Ето го и кода ми ->

import java.util.Scanner;

public class MathPower_08 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double value = Double.parseDouble(scanner.nextLine());
        int power = Integer.parseInt(scanner.nextLine());

        double raisedNumber = raisedNumber(value,power);

        System.out.println(raisedNumber);
    }
    public static double raisedNumber(double value, int power){
        double newNumber = 1;
        for (int i = 1; i <= power ; i++) {
            newNumber = newNumber * value;
        }
        return newNumber;
    }
}

 

0
Java Fundamentals
MartinBG avatar MartinBG 3152 Точки

В случая трябва да се препише кода, който са дали на картинките, тъй като липсват указания за форматирането:

// System.out.println(raisedNumber); // this uses the default number formatting 

System.out.println(new DecimalFormat("0.####").format(raisedNumber)); // customized number formatting

Разликата може лесно да се види, като си напишете подобен тест:

System.out.println(1.00000); // 1.0
System.out.println(1.00001); // 1.00001
System.out.println(1.00010); // 1.0001
System.out.println(1.00100); // 1.001
System.out.println(1.01000); // 1.01
System.out.println(1.10000); // 1.1

System.out.println(new DecimalFormat("0.####").format(1.00000)); // 1
System.out.println(new DecimalFormat("0.####").format(1.00001)); // 1
System.out.println(new DecimalFormat("0.####").format(1.00010)); // 1.0001
System.out.println(new DecimalFormat("0.####").format(1.00100)); // 1.001
System.out.println(new DecimalFormat("0.####").format(1.01000)); // 1.01
System.out.println(new DecimalFormat("0.####").format(1.10000)); // 1.1


 

0
denkaty avatar denkaty 1 Точки

100/100! Благодаря много :)

1