암시 적으로 부동 소수로 계산되도록 지시문 또는 매개 변수가있는 컴파일러가 있습니까? 예를 들어 계산의 정수 (1, 3, 10)은 정수이기 때문에암시 적 캐스팅 C++에서 부동 소수점 연산을 수행 할 정수 계산
float f = (1/3)*5;
cout << f;
은 "F", "0"이다. 컴파일러 지시문이나 매개 변수로 정수 계산을 변환하고 싶습니다.
float f = ((float)1/3)*5;
또는
float f = (1.0f/3.0f)*5.0f;
당신이이 과정을 수행하는 모든 매개 변수가있는 C/C++ 컴파일러를 아십니까 : 나는 명시 적 캐스팅 나 같은 ".F"접두어를 사용하지 않습니다 의미 명시 적 주조 나 ".f"것없이?
기본 언어의 의미를 변경할 수 있습니다. 일반적으로 좋은 생각이 아닙니다. 어쩌면 당신의 취향에 맞는 int/float 식에 대한 의미론을 가진 완전히 다른 프로그래밍 언어로 더 행복할까요? –
BTW : 두 번째 경우에는 '1'과 '3'중 하나만 부동 상태 여야합니다. 다른 상수와 '5'는 자동으로 승격됩니다. 또한 그들을 float로 정의 할 필요가 없으며, double은 암시 적으로 float으로 강등됩니다. float f = (1.0/3) * 5'는 트릭을 만듭니다 (또는 '5.0/3'). –
@David : "5가 자동으로 승격됩니다."int보다 작은 정수 상수가 int로 변환되면 "승격 됨"이라고 말하지만 다른 모든 경우에는 "변환 된"이라고 말합니다. –