2017-11-29 12 views
-3
double log2 = Math.log10(Math.sin(Math.toRadians(80.000278))) 
      - Math.log10(Math.sin(Math.toRadians(80)  )); 

결과 :자바 코드 대수 사인

log2 = 3.71551556321327E-7 

내가 3.71551556321327에 LOG2 (3.71551556321327E-7)의 결과를 변환하는 방법에 요청할 수 있습니다, 위의 코드를 사용하십니까? 내 목표는 지수를 제거하여 전체 숫자로 대답을 변환하는 것입니다.

미리 감사드립니다.

+1

어떤이는 자바 스크립트와 함께해야 하는가? – kemotoe

+0

'1E7'로 곱하십시오. –

+0

고마워, 앤디 터너. 나는 그것이 얼마나 간단한 지 깨달았다. – trixie

답변

0

결과를 정수로 변환하면 결과는 0이됩니다. 정수에 0.000000371551556321327을 반올림하면 0이됩니다. 그러나

int wholeNum = (int) Math.round(log2); 

, 당신은 지수를 제거하고 정수로 휴식을 취 싶다면, 앤디 터너 이미 코멘트에 대답했다. 결과에 1E7을 곱하면됩니다.

희망이

+0

지수가 반드시 '-7'일 필요는 없습니다. OP가 "지수를 제거"한다고 가정하면 (항상 0을 리턴하는 프로그램은 덜 유용하기 때문에), 이는 단지 약간의 시간 동안 만 작동합니다. –

0

는 어떤 수의 기초 (10) 가수를 찾는 데 도움이, 당신의 상용 대수의 소수 부분의 전원 (10)를 마련 할 필요가있다. 이것은 1 (포함) 및 10 (제외) 사이에 결과를 줄 것이다

public static double findMantissa(double arg) { 
    double log = Math.log10(arg); 
    double fractionalPart = log - Math.floor(log); 
    return Math.pow(10, fractionalPart); 
} 

처럼

자바,이 보인다 - 그것은 끝에있는 E...없이 수 의 부분입니다. 따라서 귀하의 경우 3.7155E-7에 신청하면 3.7155이됩니다. 내부적으로 기본 2

당신은 소수점 오류 부동 아주 작은 얻을 수

, double 때문에 숫자를 저장하지베이스 (10)