2012-12-12 108 views
0

输入格式小数

CTCF_1276  4.006055058150985e-03 
    CTCF_1274  1.726979566495019e-02 

输出

CTCF_1276  4.00606e-03 
    CTCF_1274  1.72698e-02 

我知道awk能做到这一点很容易,但因为我需要逃避%.5e字符串中我不喜欢它如果我想从python调用它。有没有人有更好的方法来做到这一点?

+0

为什么一个截断和其他围捕时,都应该四舍五入? –

+4

如果你使用Python,你当然可以在Python中做到这一点?我根本不相信有必要出面解决这个问题。 –

回答

1
  • 的bash:

    printf '%.5e' 4.006055058150985e-03 
    
  • 蟒:

    print('{:.5e}'.format(4.006055058150985e-03)) 
    
  • 的Perl:

    printf '%.5e', 4.006055058150985e-03 
    
  • AWK:

    printf '%.5e', 4.006055058150985e-03 
    
+0

不是python有格式化字符串的'%'运算符吗? 'print'%.5e“%(4.006055058150985e-03)'会使它更符合其他人的要求。 – tadman

+0

@tadman - 是的,它在Python文档中被称为[_old string formatting_](http://docs.python.org/release/3.2.3/library/stdtypes.html#old-string-formatting),并且是被排除在语言之外。 – mouviciel

+0

打破传统?该链接表明它*不*应该被弃用,但。 – tadman