2017-09-15 6 views
-2

나는 이것에 대한 쉬운 설명이있을 것이라고 확신하지만 나는 그것에 너무 많은 시간을 보냈다. 나는 여기서 누군가가 나를 도와 줄 수 있다고 생각했다.자바의 모듈러 분할 : 내가 뭘 잘못하고 있니?

var1 = 5000/3600; 

var2 = 5000 % 3600; 

System.out.println(var1); 

System.out.println(var2); 

출력 :

1.3888888 

1400.0 

그래서, 나는 "%"문자 생각이 나머지를 제공

이 내 문제입니까? 그렇다면 3888888 대신 2 호선 1400.0의 결과가 나오는 이유는 무엇입니까? 76/12와 76 % 12의 숫자를 전환한다고 가정하면, 나는 6과 4를 얻는다. 나는 엉망이되어 다른 데이터 유형을 시도했지만 아무것도 변경하지 않았습니다 (int, long, double, float). 프로그램을 코딩하는 다른 방법을 알아 냈습니다. 그러나이 시점에서 나는 무엇에 대해 궁금합니다. 그것은 수? 3600로 나눈

+8

모듈로'%'양을 줄 남아 있지 퍼센트 또는 10 진수 : 당신이로 나눈 수만큼 모드의 결과를 분할 분수. 그래서 3600은 한 번만 5000으로 들어가고 1400은 남아 있습니다. 1400은 .38 또는 38.888 ... 퍼센트 또는 3600입니다. – AntonH

+5

[나머지] (https://www.mathsisfun.com/definitions/remainder.html)의 오해가 있습니다. – alfasin

+0

권자, 나는 그것이 십진법의 오른쪽에 모든 것을 저장하기로되어 있다고 생각했다. 보세요, 저는 그것이 모두에게 어리 석고 쉬운 질문이라는 것을 알았습니다. 글쎄, 이제 알았어. 고마워요! 'var1'이 'double'인 경우에도 – YumBerrys

답변

2

% 연산자는 나머지를 준다, 5000은 숫자로 표현 1400

의 나머지 나는 당신이 당신에게 부문의 소수 구성 요소를 제공하기 위해 % 연산자를 기대하고 있다고 생각 나뭇잎 0 (포함)과 1 (배타적) 사이에서 발생합니다. 이는 발생하지 않습니다. 당신이 그 가치를 얻고 싶은 경우에,하지만 너무 많은 일이 아니다 :

double fracRemainder = (5000.0 % 3600.0)/3600.0; 
+1

고마워요, 그게 내가 바보 같은 생각이었던 것입니다. 나를 지워 줘서 고마워. – YumBerrys