Microsoft KB Archive/37794

From BetaArchive Wiki

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