0
나는 하나의 사소한 문제에 직면 해 있었고, 나는 궁금해한다. 왜?문자열의 정수 값을 가진 float 형식 변수
여기에서 우리는 몇 가지 문자열이 있습니다
[NSString [email protected]"%.3f/%.3f/%.3f/%i", 1.0, 1.0, 1, 1];
이 경우에는, 결과는 34,875,689 같은 1.000/1.000/1/ABRA - kadabra입니다. 왜 그렇게됩니까? 물론, 우리가 세 번째 값을 1.0으로 변경하면 모든 것이 괜찮을 것입니다. 제발,이 수술의 진수를 설명해주세요.
예. 모든 것이 정확합니다. 그러나, 나는 그것이 왜 네 번째 가치에 나쁜 영향을 미치는지 궁금합니다. +1 – Vov4yk
오, 나는 컴파일러가 그들의 타입에 관한 정보를 저장하지 않고 서로 옆에 4 개의 값을 저장한다고 가정한다. 그래서 런타임 중에 포맷 문자열이 채워지면 포맷 지시자와 그에 상응하는 바이트 수가 채워집니다. 정수는 float보다 적은 바이트로 표현되기 때문에 혼란스럽고 지정된 플로트를 채우기 위해 메모리에서 약간의 쓰레기가 걸립니다. – user387184
hm. 그것은 사실 인 것처럼 보인다. 그것은 꽤 낯설다. – Vov4yk