데이터 손실없이 문자열을 float로 변환하려고합니다. 예를 들어 istringstream 또는 :: atof (x.c_str())를 사용하는 경우 반올림으로 인해 데이터가 느슨합니다.C++에서 데이터 손실없이 float/double로 문자열 변환
일반적으로이 문제는 저에게는 문제가 아니지만 읽는 것과 동일한 데이터를 사용하고 있습니다. 다음은 숫자의 예와 그 변환 대상입니다.
-8.000001 -> -8
-0.6257381 -> -0.625738
12.0 -> 12 (drops the .0)
사람이, 내가 엄지 손가락의 규칙으로
감사 매트
덜 정밀도로 인쇄하는 것이 확실합니까? 그리고 누구의 오류가 유효한 결과가 아닌지 변환하는 것을 사용하는 것이 좋습니다. – chris
일반적으로 float/double의 제한된 비트 수 때문에 항상 반올림 오류가 발생하므로 불가능합니다. 또한 Base 10에서 Base 2와 다른 반올림 오류가 있습니다. 또한 12.0은 이진 표현에서 12와 동일하므로 서로 다를 수 없습니다. – bennofs
바로 알기 Bennofs – Makka