如何将字符串转换成 双精度?
waiting on line

解决方案 »

  1.   

    我想把 如果 有 a='1.2453',b='32'
    我想实现 a+b 的结果为 33.2453 
    怎么办呢?
      

  2.   

    有个函数,好像atoul还是什么,可以用,忘了,你查查!呵呵
      

  3.   

    double strtod( const char *nptr, char **endptr );double wcstod( const wchar_t *nptr, wchar_t **endptr );
    Example/* STRTOD.C: This program uses strtod to convert a
     * string to a double-precision value; strtol to
     * convert a string to long integer values; and strtoul
     * to convert a string to unsigned long-integer values.
     */#include <stdlib.h>
    #include <stdio.h>void main( void )
    {
       char   *string, *stopstring;
       double x;
       long   l;
       int    base;
       unsigned long ul;
       string = "3.1415926This stopped it";
       x = strtod( string, &stopstring );
       printf( "string = %s\n", string );
       printf("   strtod = %f\n", x );
       printf("   Stopped scan at: %s\n\n", stopstring );
       string = "-10110134932This stopped it";
       l = strtol( string, &stopstring, 10 );
       printf( "string = %s", string );
       printf("   strtol = %ld", l );
       printf("   Stopped scan at: %s", stopstring );
       string = "10110134932";
       printf( "string = %s\n", string );
       /* Convert string using base 2, 4, and 8: */
       for( base = 2; base <= 8; base *= 2 )
       {
          /* Convert the string: */
          ul = strtoul( string, &stopstring, base );
          printf( "   strtol = %ld (base %d)\n", ul, base );
          printf( "   Stopped scan at: %s\n", stopstring );
       }
    }
    Outputstring = 3.1415926This stopped it
       strtod = 3.141593
       Stopped scan at: This stopped itstring = -10110134932This stopped it   strtol = -2147483647   Stopped scan at: This stopped itstring = 10110134932
       strtol = 45 (base 2)
       Stopped scan at: 34932
       strtol = 4423 (base 4)
       Stopped scan at: 4932
       strtol = 2134108 (base 8)
       Stopped scan at: 932
      

  4.   

    sscanf(str, "%lf", &doubleValue)