鱼C论坛

 找回密码
 立即注册
查看: 3089|回复: 10

[迷途问路] 负数四舍五入的写法应该是怎么样的

[复制链接]
发表于 2018-12-13 17:02:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. while(1):
  2.     temp = input("输入一个数字")
  3.     num = float(temp)
  4.     if(num > 0 and num % 1 >= 0.5):
  5.         num = int(num) + 1
  6.     elif(num < 0 ):
  7.         num  *= -1
  8.         if(num % 1 >= 0.5):
  9.             num = int(num) + 1
  10.             num  *= -1
  11.         else:
  12.             num  *= -1
  13.     print(int(num))
复制代码


这里的方法是,如果是负数,先转换成正数,再算四舍五入的值,再相反数。小白求问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-13 17:35:34 | 显示全部楼层
  1. print(round(3.141592657589793,7))
复制代码


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

戳我看详细教程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-12-14 09:10:11 | 显示全部楼层
不是这样写的。最简单是 int(a+1),我这里再想想。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-14 09:11:09 | 显示全部楼层
heidern0612 发表于 2018-12-13 17:35
输出结果3.1415927,也可以是负数。

戳我看详细教程

嗯。我还没学到这里,我在想如何通过目前的知识得到。小甲鱼给了一个机智的答案,int(a+0.5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

应该就是学小数里面的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-14 09:36:52 | 显示全部楼层
heidern0612 发表于 2018-12-13 17:35
输出结果3.1415927,也可以是负数。

戳我看详细教程

我试了,print(round(-20.6,0))输出是-21,那这样应该是不满足实际的。应该是-20
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

你要是想写精确点,就自己写个函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-14 15:11:09 | 显示全部楼层
  1. while(1):
  2.     temp = input("输入一个数字")
  3.     num = float(temp)
  4.     if(num >= 0):
  5.         if num - int(num) >= 0.5:
  6.             num = int(num) + 1
  7.             print(num)
  8.         else:
  9.             print(int(num))
  10.     else:
  11.         if(num - int(num) >= -0.5):
  12.             num = int(num) + 1
  13.             print(num)
  14.         else:
  15.             print(int(num))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-14 15:38:28 | 显示全部楼层
还是不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-14 16:35:27 | 显示全部楼层
先给个思路:如果是正数,应该是int(a+0.5),如果是负数,应该是int(a - 0.5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-14 16:44:28 | 显示全部楼层
  1. while(1):
  2.     temp = input("输入一个数字")
  3.     num = float(temp)
  4.     if num >= 0:
  5.         if num - int(num) >= 0.5:
  6.             
  7.             print('小甲鱼的答案',end ='')
  8.             print(int(num + 0.5))
  9.             num = int(num) + 1
  10.             print('我的答案',end ='')
  11.             print(num)

  12.         else:
  13.             print('小甲鱼的答案',end ='')
  14.             print(int(num + 0.5))
  15.             print('我的答案',end ='')
  16.             print(int(num))

  17.     else:
  18.         if int(num) - num > 0.5:
  19.             
  20.             print('小甲鱼的答案',end ='')
  21.             print(int(num + 0.5))
  22.             print('我的答案',end ='')
  23.             num = int(num) - 1
  24.             print(num)

  25.         else:
  26.             print('小甲鱼的答案',end ='')
  27.             print(int(num + 0.5))
  28.             print('我的答案',end ='')
  29.             print(int(num))
复制代码

这样应该没错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 00:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表