2012-07-15 137 views
8

我對python編程有點新鮮,因此請在我身上輕鬆一點。我試圖調用字符串屬性rjust,併爲浮點指定精度。下面的代碼和樣本輸出(注意是0.00是沒有道理的右側):用精確度打印浮點數右對齊

print '%s: %s %s \tchange: %.2f' % (Instance1.symbol.ljust(5), 
    Instance1.name.ljust(50), Instance1.buyprices.rjust(10), Instance1.val) 

OUTPUT:

AXP : American Express Company       55.38 change: -1.15 
AXR : Amrep Corp.          6.540 change: 0.00 
+0

感謝列翁! – siesta 2012-07-15 14:44:45

回答

16

這顯示瞭如何將輸出用兩個小數點格式的例子年長%格式化方法:

v1 = 55.39 
v2 = -1.15 
v3 = 6.54 
v4 = 0.00 

print '%8.2f %8.2f' % (v1, v2) 
print '%8.2f %8.2f' % (v3, v4) 

相應輸出:

55.39  -1.15 
    6.54  0.00 

或者,你可以使用「新的和改進的」.format()函數,這將是一段時間,值得了解。下面將產生相同的輸出如上:

print '{:8.2f} {:8.2f}'.format(v1, v2) 
print '{:8.2f} {:8.2f}'.format(v3, v4) 

格式指令的兩組分配8個空格爲你的電話號碼,將其格式化爲具有2位的浮子小數點後。您必須調整這些值以適應您的需求。

使用這種方法來格式化你的輸出會更容易,我認爲既然.format()會給你在輸出控制(包括正當性,灌裝,精度)的很多

0

沒關係,我張貼我當然問題之後想通了這一點......

changed to this: 
    def change_value(self, sym, buy, sell): 
     self.sym = sym 
     temp = float(buy) - float(sell) 
     self.val = "%.2f" % temp 




and then called str(Instance1.val).rjust(10)