770686119 发表于 2018-12-13 17:02:20

负数四舍五入的写法应该是怎么样的

while(1):
    temp = input("输入一个数字")
    num = float(temp)
    if(num > 0 and num % 1 >= 0.5):
      num = int(num) + 1
    elif(num < 0 ):
      num*= -1
      if(num % 1 >= 0.5):
            num = int(num) + 1
            num*= -1
      else:
            num*= -1
    print(int(num))

这里的方法是,如果是负数,先转换成正数,再算四舍五入的值,再相反数。小白求问。

heidern0612 发表于 2018-12-13 17:35:34

print(round(3.141592657589793,7))

输出结果3.1415927,也可以是负数。

戳我看详细教程

770686119 发表于 2018-12-14 09:10:11

不是这样写的。最简单是 int(a+1),我这里再想想。

770686119 发表于 2018-12-14 09:11:09

heidern0612 发表于 2018-12-13 17:35
输出结果3.1415927,也可以是负数。

戳我看详细教程

嗯。我还没学到这里,我在想如何通过目前的知识得到。小甲鱼给了一个机智的答案,int(a+0.5)

heidern0612 发表于 2018-12-14 09:12:46

770686119 发表于 2018-12-14 09:11
嗯。我还没学到这里,我在想如何通过目前的知识得到。小甲鱼给了一个机智的答案,int(a+0.5)

round()佳宇老师教程里面不教的,私下学的。

应该就是学小数里面的。

770686119 发表于 2018-12-14 09:36:52

heidern0612 发表于 2018-12-13 17:35
输出结果3.1415927,也可以是负数。

戳我看详细教程

我试了,print(round(-20.6,0))输出是-21,那这样应该是不满足实际的。应该是-20

heidern0612 发表于 2018-12-14 09:41:16

770686119 发表于 2018-12-14 09:36
我试了,print(round(-20.6,0))输出是-21,那这样应该是不满足实际的。应该是-20

对,这个受计算机影响不太精确,但是一般是够用了。

你要是想写精确点,就自己写个函数。

770686119 发表于 2018-12-14 15:11:09

while(1):
    temp = input("输入一个数字")
    num = float(temp)
    if(num >= 0):
      if num - int(num) >= 0.5:
            num = int(num) + 1
            print(num)
      else:
            print(int(num))
    else:
      if(num - int(num) >= -0.5):
            num = int(num) + 1
            print(num)
      else:
            print(int(num))

770686119 发表于 2018-12-14 15:38:28

还是不对

770686119 发表于 2018-12-14 16:35:27

先给个思路:如果是正数,应该是int(a+0.5),如果是负数,应该是int(a - 0.5)

770686119 发表于 2018-12-14 16:44:28

while(1):
    temp = input("输入一个数字")
    num = float(temp)
    if num >= 0:
      if num - int(num) >= 0.5:
            
            print('小甲鱼的答案',end ='')
            print(int(num + 0.5))
            num = int(num) + 1
            print('我的答案',end ='')
            print(num)

      else:
            print('小甲鱼的答案',end ='')
            print(int(num + 0.5))
            print('我的答案',end ='')
            print(int(num))

    else:
      if int(num) - num > 0.5:
            
            print('小甲鱼的答案',end ='')
            print(int(num + 0.5))
            print('我的答案',end ='')
            num = int(num) - 1
            print(num)

      else:
            print('小甲鱼的答案',end ='')
            print(int(num + 0.5))
            print('我的答案',end ='')
            print(int(num))
这样应该没错了
页: [1]
查看完整版本: 负数四舍五入的写法应该是怎么样的