鱼C论坛

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

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

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

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

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

x
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))

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

使用道具 举报

发表于 2018-12-13 17:35:34 | 显示全部楼层
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 | 显示全部楼层
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))
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层
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))
这样应该没错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 19:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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