이 코드를 작성했습니다.
float b = 3.6;
그리고 나는 이것을 얻는다 :
오류 : 해결되지 않은 컴파일 문제 : 유형 불일치 : double에서 float로 변환 할 수 없습니다.
왜? 의 정의는 float
무엇입니까?
답변
Java에서 십진수를으로 입력 3.6
하면 double
. double
64 비트 정밀도 IEEE 754 부동 소수점이고 float
32 비트 정밀도 IEEE 754 부동 소수점입니다. a float
가 a 보다 덜 정확하기 때문에 double
변환을 암시 적으로 수행 할 수 없습니다.
플로트를 만들려면 번호를 f
(예 :)로 끝내야합니다 3.6f
.
자세한 설명 은 Java 튜토리얼 의 기본 데이터 유형 정의를 참조하십시오 .
답변
그것을 만드십시오
float b= 3.6f;
부동 소수점 리터럴은 ASCII 문자 F 또는 f가 접미사 인 경우 float 유형입니다. 그렇지 않으면 그 유형은 double이고 선택적으로 ASCII 문자 D 또는 d로 접미사를 붙일 수 있습니다.
답변
문제는 십진수는 기본적으로 두 배로 설정된다는 것입니다. 그리고 double은 float에 맞지 않기 때문에 의도적으로 float를 정의해야합니다. 따라서 다음과 같이 가십시오.
float b = 3.6f;
답변
JAVA에서 값은 다음과 같습니다.
- 8.5
- 3.9
- (등등..)
float가 아닌 double로 간주됩니다 .
문제를 해결하기 위해 캐스트를 수행 할 수도 있습니다.
float b = (float) 3.5
;
또 다른 해결책 :
float b = 3.5f
;