#include <stdio.h>
#include <math.h>
char toNotationUnit(double value,float *out) {
    double val;
	char submultiplo[] = {' ','m','u','n','p','f','a','z','y'};
	char multiplo[] = {' ','k','M','G','T','P','E','Z','Y'};
	int counter;
	char unit;
	val = value;
	if(val < 1) {
		while(val < 1.00) {
			counter++;
			val=val*(double)1000;
			if(counter==8) break;
			unit = submultiplo[counter];
		}
	}else{
		while(val >= 1000) {
			counter++;
			val=val/(double)1000;
			if(counter==8) break;
		}
		unit = multiplo[counter];
	}
	val = round(val*(double)100)/(double)100;
	*out = (float)val;
	return unit;
}

int main() {
  double x = 0.000000123123;
  float res;
  char t;
  t = toNotationUnit(x,&res);
  printf("%.2F%c",res,t);
  return 0;
}