1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #!/usr/bin/env python
# -*- coding: ISO-8859-1 -*-
import scipy
##########################################################################################################
def decade(n):
""" Retourne la decade dans laquelle se trouve <n>
"""
l = scipy.log10(abs(n))
if l == 0.0:
s = 0
else:
s = (scipy.sign(l)-1)/2
return int(l) + s
##########################################################################################################
def roundN(v, nc = 4):
""" Arrondi à <nc> chiffres significatifs
"""
if v == 0.0: return 0.0, 1
dec = decade(v)
mult = 10**dec
vv = round(float(v)/mult, nc-1)*mult
return vv, dec
#############################################################################################################
def strSc(v, decade = 0, nbChiffres = 4):
""" Renvoie un string formaté du nombre <v>
"""
print v,
if v == 0.0:
return "0"
v_, decade = roundN(v)
print v_, decade, type(v_)
print " -->", v_ % 1
if v_ % 1 == 0.0:
v_ = int(v_)
return str(v_)
for n in [454, 455, 456, 457, 458]:
print strSc(n) |
Partager