INFO: Buffer Size for fcvt() and ecvt() Is 349 Bytes

ID: Q59070


The information in this article applies to:
  • The C Run-Time (CRT), included with:
    • Microsoft C for MS-DOS, versions 5.1, 6.0, 6.0a, 6.0ax
    • Microsoft C for OS/2, versions 5.1, 6.0, 6.0a
    • Microsoft C/C++ for MS-DOS, version 7.0
    • Microsoft Visual C++ for Windows, 16-bit edition, versions 1.0, 1.5
    • Microsoft Visual C++, 32-bit Editions, versions 1.0, 2.0, 4.0, 5.0, 6.0


SUMMARY

In Microsoft C, the ecvt() and fcvt() routines use a single, statically allocated buffer while converting floating point numbers to character strings. The buffer is currently defined as 349 bytes. However, the largest double-precision variable that can be used is 309 bytes, with 40 bytes for padding. It is set up to be large enough to accommodate the largest double- precision number plus 40 decimal places (even though you only have 16 digits of accuracy in a double-precision IEEE number).

Additional query words:

Keywords : kbCRT kbVC100 kbVC150 kbVC200 kbVC400 kbVC500 kbVC600
Version : MS-DOS:5.1,6.0,6.00a,6.00ax,7.0; OS/2:5.1,6.0,6.00a; WINDOWS:1.0,1.5; WINDOWS NT:1.0,2.0,4.0,5.0
Platform : MS-DOS NT OS/2 WINDOWS
Issue type : kbinfo


Last Reviewed: July 1, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.