나는 0
과 0.0
(int와 double)의 차이에 대해 잘 알고 있습니다.C++ : 0과 0.0 사이의 차이?
그러나 0.
과 0.0
사이에는 어떤 차이가 있습니까? 사전에
고마워,
악셀은
는나는 0
과 0.0
(int와 double)의 차이에 대해 잘 알고 있습니다.C++ : 0과 0.0 사이의 차이?
그러나 0.
과 0.0
사이에는 어떤 차이가 있습니까? 사전에
고마워,
악셀은
는차이는 없습니다. 두 리터럴은 두 배입니다. 은 C++에서 - 문법 :
fractional-constant:
digit-sequenceopt . digit-sequence
digit-sequence .
정말요? 이상하다. Howcome cout << typeid (0) .name() << ""<< typeid (0.0) .name(); "i d"가 인쇄됩니까? –
'typeid (0)'<- 이것은 * int *입니다. '.' 세 번째 코드 줄 끝에. –
그것을 놓쳤습니다. 고맙습니다. –
아니, 없다.
예 있습니다. cout << typeid (0) .name() << ""<< typeid (0.0) .name(); (downvote 제거, 내가 올바른 경우 나중에 downvote 것이다) –
'typeid (0) .name()'은 (는) 소수점 이하 자리 표시가 없음을 나타냅니다. 'cout << typeid (0.) .name() << ""<< typeid (0.0) .name();'을 시도해 보면 동일하다는 것을 알 수 있습니다. – AgentConundrum
아니요. 알고있는 한 .0까지 작성할 수 있습니다.
0
는 int 타입이지만 두 배로 주조 및 0.0
유형의 이중하지만 int로 주조 할 수있다 할 수있다.
두 캐스트 모두 내재적입니다.
질문에 '0'이 명시 적으로 묻습니다. 심지어 "주의하십시오."라고 말합니다. –
실종. 고맙습니다. –
숫자의 일부로 .
을 사용하면 부동 소수점 유형으로 식별됩니다.
이 :
cout << (5/2) << endl;
cout << (5./2) << endl;
cout << (5.0/2) << endl;
인쇄이 :
2
2.5
2.5
당신은 5.
및 5.0
반면 모두 부동으로 확인 얻을, 첫 번째 줄 (두 값이 모두 정수이기 때문에) 정수 나누기를 사용하고 있음을 알 수 있습니다 포인트 유형을 사용하여 "정상적인 분할"을 트리거합니다.
의미 상의 차이는 없습니다 (음, 소스 코드에 한 개의 추가 바이트 차이가 있습니다 : p). 그러나 약간과 관련하여 +0.0과 -0.0 사이에 차이가 있습니다. 재미있어! –