모든 이진 부동 소수점은 정확히 10 진수 형식으로 지정할 수 있습니다. 결과 문자열은 다소 길지만 가능합니다. 에서 부동 소수점에 나의 기사 나는 정밀의 중요성을 포함, 지금은이 기능을합니다. 이 문제는 부동 소수점 값을 입력으로 사용하고 정확한 십진 문자열을 출력으로 형식화하는 프로그램 또는 함수를 작성하는 것입니다.
올바른 부동 소수점 숫자로 작업하려면 프로그램에 입력 할 때 정확한 형식을 제공해야합니다. 이 형식은 두 개의 정수 Significand Exponent
이며 실제 부동 소수점 값은 Significand * 2 ^ Exponent
입니다. 두 값 중 하나는 음수 일 수 있습니다.
사양 :
- 최소 32 비트 부동 소수점의 범위와 정밀도가 지원되어야합니다 (입력을 초과하지 않음)
- 십진수 형식의 값은 정확한 표현이어야합니다 (정확한 라운드 팁을 부동으로 되돌릴만큼 충분하지 않음).
- 표준 라이브러리 부동 소수점 형식화 기능이 정확하거나 충분히 빠르다고 신뢰하지 않으므로 (예 :)
printf
사용할 수 없습니다. 당신은 서식을 수행해야합니다. 통합 포맷 / 변환 기능이 허용됩니다. .
정수 성분이없는 경우 앞에 오는 0을 제외하고 선행 또는 후행 0 이 없을 수 있습니다.- 기능 또는 전체 프로그램이 허용됩니다.
예 :
1 -2 => 0.25
17 -3 => 2.125
-123 11 => -251904
17 50 => 19140298416324608
23 -13 => 0.0028076171875
3 120 => 3987683987354747618711421180841033728
3 -50 => 0.00000000000000266453525910037569701671600341796875
-3 -50 => -0.00000000000000266453525910037569701671600341796875
10 -2 => 2.5
-12345 -3 => -1543.125
0 0 => 0
161 -4 => 10.0625
512 -3 => 64
가장 짧은 코드가 승리합니다.
.0
있습니까?
0.abc
앞에 0이 아닌, 다음 abc.0
후행 아니다.
.0
부동 소수점 숫자를 다룰 때 항상 정수로 끝나는 것이 관례 입니다. 예를 들어 Python : str(1.0) == '1.0'
vs를 참조하십시오 str(1) == '1'
. 논리가 여전히 일치하지 않습니다.