我正在测试一个特定舍入的系统 - 最后一个数字总是向上舍入
e.g。
123,459
应该产生123,46
99,9911
应该产生100,00
如何在python中实现它?
修改
最重要的是 - 这些数字是价格
答案 0 :(得分:4)
import math
def myRounding(x):
return math.ceil(x*100) / 100.0
请注意,由于浮点无法表示所有小数部分,因此某些结果将无法以浮点数表示。如果这是一个问题,请使用定点数进行计算(即1.23由123
表示,固定因子为0.01
),或使用decimal.Decimal
。
答案 1 :(得分:0)
[...]最后一个数字总是四舍五入。
此轮次为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
答案 2 :(得分:-1)
您可以使用formatter
来完成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];