정수를 반환하는 java 함수가 있습니다. 나는 그것이 돌아 오게 될 것을 알기 때문에 그것이 올바르게 작동하는지 그렇지 않은지를 안다.괄호와 연산 순서
나는 결과가 괜찮이
miuf = miuf_ant * nf_ant/nf - ((double) ((t - 1) * hist[t - 1])/(double) nf);`
처럼 작성하는 경우 : 어쨌든, for 루프의 어느 시점에서 코드 줄이있다. 나는이
miuf = (miuf_ant * (nf_ant/nf) - ((double) ((t - 1) * hist[t - 1])/(double) nf));
처럼 작성하는 경우
결과는 방법이 꺼져 있습니다.
nf_ant
, nf
및 t
이 int
의이며, 나머지는 double
들입니다.
몇 번의 반복을 위해 디버거에서이 두 표현식을 평가했으며 결과는 일반적으로 0.3 정도 다릅니다. 왜 이런 일이 일어나고 왜 그 일이 일어나고 다른 일은 일어나지 않습니까?
분명하지 않습니까? 작업 순서에 대한 자체 규칙을 설정했습니다. – moatist
@Pascal Cuoq 수학적으로이 두 저술은 동일합니다. 그런 의견을 가지고 오지 마라. 내가 헷갈 렸던 프로그래밍 부분 (결과가 어떻게 평가되는지)은 내가 물었습니다. 단순한. – learningProgramming