Microsoft KB Archive/37794

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Article ID: 37794

Article Last Modified on 12/12/2003



APPLIES TO

  • The C Run-Time (CRT), when used with:
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5



This article was previously published under Q37794


SYMPTOMS

The gcvt() function returns a value in scientific notation, without regard to the specified precision, when the floating-point value has the form "0.0<x>" and <x> is any sequence of digits.

CAUSE

This is expected behavior for gcvt().

RESOLUTION

If this behavior is not desired, use the fcvt() function to convert the floating-point number to a string.

MORE INFORMATION

The following code demonstrates this behavior:

Sample Code

/*
 * Compile options needed: None
 */ 

#include <stdio.h>
#include <stdlib.h>

char buffer[50];
int precision = 20;

void main(void)
{
   gcvt(-0.1123, precision, buffer);    /* Decimal output */ 
   printf("buffer ........\"%s\"\n", buffer);

   gcvt(-0.0123, precision, buffer);    /* Scientific notation */ 
   printf("buffer ........\"%s\"\n", buffer);
}
                

Keywords: kbcrt kbprb KB37794