Technical Support

{{ post.title }} 글 편집 작성자 {{ post.author.name }} 작성일

Version {{ post.target_version }} Product
{{ product.name }}
Tutorial/Manual {{ post.manual_title }} Attached File {{ post.file.upload_filename }}

Single (Float) vs Double Precision


CAE 소프트웨어를 사용하다 보면 float, double과 같은 표현이 종종 나옵니다.

float, double 대신 single, double이라고 적기도 하는데요.

  • float = single precision
  • double = double precision


RecurDyn에서도 RFI Optimizer, Output File Generator 등에서 이 표현이 사용됩니다

또한 Particleworks에서도 Solving Option에서 이를 선택할 수 있습니다.

J6SUi3LnN5i6TznbTftwYLT0EmUJwq3E.png apai9oi85hPTWXorSj1gCQVGpk7iQyBW.png


Float과 Double의 차이를 간단히 설명하면

float (Single)옵션의 경우, Double옵션을 사용할 때에 비해 정밀도는 떨어지는 대신, 사용하는 메모리량, 혹은 생성되는 파일의 크기가 약 절반 가까이 감소합니다. 이 때, 사용하는 메모리의 양이나 파일의 크기가 줄어들 경우, 그만큼 시뮬레이션이나 파일 처리 속도가 빨라질 수 있음을 의미합니다.
(여기서 Single은 Single Precision을 Double은 Double Precision을 의미합니다.)

보통은 이 정도만 이해하고 사용하시면 되지만 여기서는 조금 더 자세히 설명을 드리고자 합니다.

사실 이야기가 복잡할 수 있게 간략하게만 설명드리도록 하겠습니다.


1. float:

  • 유효숫자 약 7개
  • 최대로 표현 가능한 수: 약3.4e+38
  • 일명 single precision
  • 32bit value

2. double:

  • 유효숫자 약 16개
  • 최대로 표현 가능한 후 약 1.8e+308
  • double precision
  • 64bit value


기억해 두실 것은 유효숫자가 7개 이상 필요하거나, 최대로 표현해야할 수가 3.4e+38 이상이라면 double을 써야만 하고, 그렇지 않다면, float (single precision)을 써도 별 문제가 없으며, 데이터 및 파일 크기에 있어서 (그리고 해석속도나 파일생성 속도에 있어서도 유리하다는 점입니다.


자세한 내용은 아래 글을 참고하세요.

https://docs.microsoft.com/en-us/cpp/c-language/type-float?view=vs-2019