me2day

자바에서 int 정수값 = 10; int 결과 = 정수값 * 0.1; 이 컴파일 될까요? 안 된다면 왜? 11.09.19 17:00

미투 0

12 개의 댓글이 있습니다.

키친 키친

double 결과 로..하면 되나욤..?

11.09.19 17:02
fupfin fupfin

키친 결과는 정수여야 하는 걸로 하죠. ^^

11.09.19 17:04
Bengi Bengi

컴파일 되지 않나요 -_-? 정수값*0.1한 값의 버림한 값이 결과값에 저장되지 않나합니다.

11.09.19 17:07
爀헉군 爀헉군

안될것 같은 느낌인데요...

11.09.19 17:18
키친 키친

int result = a*(int)0.1; 이거 하니까 0.1->0이 되서 fail..ㅠ,.ㅠ

11.09.19 17:38
fupfin fupfin

Bengi 될 것 같죠? 근데 안 됩니다. 왜 안 될까요? ㅎㅎ

11.09.20 09:13
fupfin fupfin

爀헉군 네. 안 됩니다. 그런데 왜 그럴까요?

11.09.20 09:13
fupfin fupfin

키친 그렇게 하면 안 되죠. ^^

11.09.20 09:13
fupfin fupfin

Bengi 爀헉군 키친 반대로 double 결과 = 정수값 * 2; 은 됩니다. ^^

11.09.20 09:14
Bengi Bengi

fupfin 음 역시... * 0.1을 했기 때문에 실수값인거고, 실수값을 정수형 변수를 초기화(라고해냐하나요. 음...) 할 때 넣을 수 없다는 건가요?

11.09.20 09:51
fupfin fupfin

Bengi 네. 왜 넣을 수 없느냐는 거죠. 자바가 강한 타입 확인을 하는 언어라서 그렇다면 정수를 실수에 넣을 땐 왜 오류가 안 나고?

11.09.20 09:57
Bengi Bengi

fupfin 값(데이터)의 손실이 없기 때문에 그런건가요?

11.09.20 10:07