我有一个Python列表只充满了花车:回合飘下来了Python中保持一个非零小数只
list_num = [0.41, 0.093, 0.002, 1.59, 0.0079, 0.080, 0.375]
我要圆这个名单下来取:
list_num_rounded = [0.4, 0.09, 0.002, 1.5, 0.007, 0.08, 0.3]
问题: 舍入1.59到1.5很容易做到。不过,我的问题是与其他彩车小于1
问: 基本上,我需要所有轮漂浮下来,因此:如果浮子是< 1,那么圆润版本只包含一个非零号码。有没有办法在Python 2.7中做到这一点?
编辑:
尝试: 这是我曾尝试:
list_num_rounded = []
for elem in list_num:
if elem > 0.01 and elem < 0.1:
list_num_rounded.append(round(elem,2))
if elem > 0.001 and elem < 0.01:
list_num_rounded.append(round(elem,3))
elif elem > 0.1:
list_num_rounded.append(round(elem,1))
然而,这给:
[0.4, 0.09, 0.002, 1.6, 0.008, 0.08, 0.4]
据四舍五入1.59,0.79和0.375起来,但我需要一种方法来减少。有没有办法做到这一点?
编辑2:
该列表将不包含负浮点数。只有积极的花车会出现。
我更新了原文。列表中不会出现负数浮动。关于数字> 1,抱歉,我认为我不理解。你的例子中你已经有一个> 1的数字---> 1.59。您的解决方案适用于此 - 正确? –
我似乎无法弄清楚数字> 1。我错过了什么吗? –
是的,我在示例数据中看到了1.59。但是,例如,1059.56轮到了什么?我认为它会舍入到小数点后1位(所以1059.5)。 – reupen