2015-05-31 3 views
1

Я найти анти-логарифм ввести values.Answer будет правильно с естественным лог base.But, когда пытаются найти анти-журнал с base.then ввести это не дает правильный ответ, такие как
anti-log value 10 with base 10 = 10000000000
Этот мой код:
Java: пользователь вводит ошибку Antilog Base?

public class A { 

public static void main(String[] args) { 
    Scanner s = new Scanner(System. in); 
    double value, res, value2, res2; 
    System.out.print("Enter Anti Log Value:"); 
    value = s.nextDouble(); 
    res = Math.exp(value); 
    System.out.println("Answer Of Antilog With natural Base is: + res); 
    System.out.println("-----------------------------------"); 
    System.out.print("Enter Your Base:"); 
    value2 = s.nextDouble(); 
    res2 = Math.exp(value)/Math.exp(value2); 
    System.out.println("Answer Of Antilog With your enter Base is : " + res2); 
} 
} 

Он даст ответ с базой ввести 10 = 1,0, так как это исправить.

ответ

1

Предполагая, что я понимаю ваш вопрос правильно, вы должны просто заменить

res2 = Math.exp(value)/Math.exp(value2); 

с

res2 = Math.pow(value2, value); 

Если вы хотите, чтобы избежать экспоненциальное при печати значения, используйте:

System.out.printf("Answer Of Antilog With your enter Base is : %f%n", res2); 

или (чтобы пропустить десятичные знаки):

System.out.printf("Answer Of Antilog With your enter Base is : %.0f%n", res2); 
+0

я думаю, что он не принимает бревно поэтому нет необходимости в ПР –

+0

@k Эрландссон я захватить этот ответ, но это написать в этом 1.0E10.is есть способ, что я могу показать ответ, как этот 10000000000 – hamel123

+0

@ hamel123 Это просто проблема форматирования, java форматирует большие числа таким образом по умолчанию. Вы можете использовать 'System.out.printf (« Ответ Antilog »с вашим вводом Base:% f \ n", res2); 'для печати номера без научной нотации. –

Смежные вопросы