非典型四捨五入我測試一個系統,爲特定四捨五入 - 最後一個號碼總是四捨五入問題與蟒蛇
例如
123,459
應該產生123,46
99,9911
應該產生100,00
我怎麼能實現它的蟒蛇?
編輯
最重要的事情 - 這些數字的價格
非典型四捨五入我測試一個系統,爲特定四捨五入 - 最後一個號碼總是四捨五入問題與蟒蛇
例如
123,459
應該產生123,46
99,9911
應該產生100,00
我怎麼能實現它的蟒蛇?
編輯
最重要的事情 - 這些數字的價格
import math
def myRounding(x):
return math.ceil(x*100)/100.0
注意的是,由於浮點不能夠表達所有小數,有些結果將無法用浮點數表示。如果這是一個問題,以定點數計算(即1.23由123
表示,固定因子爲0.01
),或使用decimal.Decimal
。
最後一個數字總是四捨五入。
此舍入到小數n-1
其中n
表示的小數點後的位數。
def roundupLast(x):
return round(x, len(str(x).split(".")[-1]) - 1)
print(roundupLast(123.459)) # 123.46
print(roundupLast(99.9911)) # 99.991
print(roundupLast(99.9916)) # 99.992
您可以在秒例如最後一個數字是不是四捨五入使用格式化
NSNumber *Numero = 99.99
NSNumberFormatter *Formatter = [[NSNumberFormatter alloc] init] ;
[Formatter setNumberStyle:NSNumberFormatterDecimalStyle];
//Formatter ROUNDING MODE
[Formatter setRoundingMode:NSNumberFormatterRoundUp];
[Formatter setMinimumFractionDigits:2];
[Formatter setMaximumFractionDigits:2];
result = [Formatter stringFromNumber:Numero];
[Formatter release];
這是Objective C;這個問題是關於Python的。 – 2011-06-22 12:10:14
做到這一點。你基本上只是將精度降低到2位,這是完全不同的。另外,你使用小數點嗎? (我知道有些國家使用)如果是這樣,請將其更改爲。因爲大多數SO用戶會發現它很混亂。 – 2011-06-17 07:58:21
這是「最後一個號碼」,爲什麼第二個例子不應該是'99,991'? – aioobe 2011-06-17 07:58:23
你在使用'decimal'嗎?如果不是爲什麼不呢? – 2011-06-17 08:06:34