Number to Engineering format
1 2 def number_to_engineering(value, precision=3) 3 expof10 = ((Math.log10(value)/3.0).floor)*3 4 value *= 10**(-expof10) 5 case 6 when value>=1000.0 : 7 value /= 1000.0 8 expof10 +=3 9 when value>=100.0 : precision -= 2 10 when value>=10.0 : precision -= 1 11 end 12 "%.*fe%d" % [precision-1, value, expof10] 13 end 14 15 number_to_engineering(15000) => "15e3"