php - 유형 변환에 관해 질문이 있습니다. float 유형을 int로 변환할 때 문제가 있을 수 있다고 생각했는데 결과는 그렇지 않았습니다.
过去多啦不再A梦2017-06-12 09:19:20
0
6
811
예를 들어 float형 2.0000000000을 int로 변환하면 기본 저장공간은 1.999999999999999가 되어야 하는데 정밀도 제한이 있어서 이 숫자를 int로 변환하면 1이 될 것 같아요(소수점 부분은 버림) 하지만 여러 언어를 테스트했는데 모두 정확했습니다(php, java, go, js) php:
2.0
부동 소수점 숫자로 정확하게 표현할 수 있습니다. 이 숫자에는 문제가 없습니다.십진수는 1.999999가 아닌 과학적 표기법으로 저장됩니다. 강제 전송 중에 처리되며 유형으로 직접 변환되지 않습니다
일반적으로 int->float과 같이 낮은 정밀도를 높은 정밀도로 변환할 때 높은 정밀도를 낮은 정밀도로 변환하면 정밀도가 떨어지고 데이터 결과가 매우 놀랄 수 있습니다.
몇 가지 고전적인 예
(int)(0.57 * 100)
(int)((0.1+0.7)*10)
실질적인 의미는 없습니다. 실제로 생각한 대로 작동한다면 이 언어를 설계한 사람은 분명히 고려할 것입니다
자세한 이해를 위해서는 특정 조립 원칙이 필요하므로 너무 열중하지 마세요
이 프로그래밍 패널을 어디서 다운로드했는지 물어봐도 될까요? 좋은 것 같아요