2011-12-02 7 views
2

私は現在、次の2つの違いを計算するために使用しています。外出は非常に速いので、私は時と分を表示する必要はありません。ちょうど0.00の場合です。実際にPythonで小数点以下の桁をシフトするにはどうしたらいいですか?Pythonで小数点以下の桁をシフトするにはどうすればよいですか?

def time_deltas(infile): 
    entries = (line.split() for line in open(INFILE, "r")) 
    ts = {} 
    for e in entries: 
     if " ".join(e[2:5]) == "OuchMsg out: [O]": 
      ts[e[8]] = e[0]  
     elif " ".join(e[2:5]) == "OuchMsg in: [A]":  
      in_ts, ref_id = e[0], e[7] 
      out_ts = ts.pop(ref_id, None) 
      yield (float(out_ts),ref_id[1:-1], "%.10f"%(float(in_ts) - float(out_ts))) 

INFILE = 'C:/Users/kdalton/Documents/Minifile.txt' 
print list(time_deltas(INFILE)) 

答えて

12

あなたは数学

a = 0.01; 
a *= 10; // shifts decimal place right 
a /= 10.; // shifts decimal place left 
+3

ウォッチを使用するのと同じ方法。 'a'が整数の場合、頭が傷つくことがあります。おそらく最後の行を 'a/= 10.'に変更してください。 –

+0

よろしくお願いします。ありがとう:) –

+0

ありがとう!本当です...私はもっと複雑にしていたと思います。D – eunhealee

1

で行うか、整数の除算のためdatetimeモジュール

>>> import datetime 
>>> a = datetime.datetime.strptime("30 Nov 11 0.00.00", "%d %b %y %H.%M.%S") 
>>> b = datetime.datetime.strptime("2 Dec 11 0.00.00", "%d %b %y %H.%M.%S") 
>>> a - b 
datetime.timedelta(-2) 
関連する問題