Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

cs_misc.c

Go to the documentation of this file.
00001 #include "mrilib.h"
00002 
00003 char * approximate_number_string( double val )
00004 {
00005    static char sval[128] ;
00006    double aval=fabs(val) , tval ;
00007    int    lv , qv ;
00008 
00009    if( aval == 0.0 ){ strcpy(sval,"Zero"); return; }
00010 
00011    if( val < 0.0 ){ strcpy(sval,"-"); } else { sval[0] = '\0'; }
00012 
00013    lv   = (int) floor(log10(aval)/3.0) ;
00014    tval = pow(10.0,(double)(3*lv)) ;
00015    qv   = (int) rint(aval/tval) ;
00016    sprintf( sval+strlen(sval) , "%d" , qv ) ;
00017 
00018    switch( lv ){
00019 
00020      case 0: break ;
00021 
00022      case 1: strcat(sval+strlen(sval)," thousand")    ; break ;
00023      case 2: strcat(sval+strlen(sval)," million" )    ; break ;
00024      case 3: strcat(sval+strlen(sval)," billion" )    ; break ;
00025      case 4: strcat(sval+strlen(sval)," trillion")    ; break ;
00026      case 5: strcat(sval+strlen(sval)," quadrillion") ; break ;
00027      case 6: strcat(sval+strlen(sval)," quintillion") ; break ;
00028 
00029      case -1: strcat(sval+strlen(sval)," thousand-ths") ; break ;
00030      case -2: strcat(sval+strlen(sval)," million-ths")  ; break ;
00031      case -3: strcat(sval+strlen(sval)," billion-ths")  ; break ;
00032      case -4: strcat(sval+strlen(sval)," trillion-ths") ; break ;
00033 
00034      default:
00035        strcat(sval+strlen(sval)," jillion") ;
00036        if( lv < 0 ) strcat(sval+strlen(sval),"-ths") ;
00037      break ;
00038    }
00039 
00040    return (char *)sval ;
00041 }
 

Powered by Plone

This site conforms to the following standards: