Как правильно использовать Math.log? - PullRequest
0 голосов
/ 11 октября 2018

Итак, я получил эту формулу, чтобы вычислить количество лет, необходимое для удвоения любой суммы денег с данным процентом (i)

log(2) / log(1 + (i/100) )

Так вот мой код:

import java.util.Scanner;

public class JavaApplication37 {

    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);  
        System.out.println("What's the interest rate?: ");
        int i = reader.nextInt(); 
        double t = (Math.log(2))/(Math.log(1+(i/100)));
        System.out.println("It takes " + t + " years before the amount has doubled");
    }
}

Это дает мне вывод: понадобится бесконечность лет, прежде чем сумма удвоится

Что я сделал не так?

1 Ответ

0 голосов
/ 11 октября 2018

Проблема в том, что 100 предполагается как целое число.Вам лучше написать 100 как 100.0, и он запустится.Это связано с тем, что значения 1.0, 2.3 предполагаются как двойные, а не с плавающей точкой.Обратите внимание на десятичную точку.

, поэтому перепишите ваш код, как показано ниже, и он будет работать:

import java.util.Scanner;

public class JavaApplication37 {




    public static void main(String[] args) {
       Scanner reader = new Scanner(System.in);  
        System.out.println("What's the interest rate?: ");
    int i = reader.nextInt(); 
    double t = (Math.log(2))/(Math.log(1+(i/100.0)));
    System.out.println("It takes " + t + " years before the amount has doubled");

    }

}

enter image description here

...