Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

请高手帮忙看段代码



  • gw=raw_input('enter an number:')
    ggw=int(gw)
    if gw<20.5:
    if gw==ggw:
    gw=gw
    else:
    if gw-ggw>0.5:
    gw=ggw+1
    else:
    gw=ggw+0.5
    else:
    if gw==ggw:
    gw=gw
    elif gw>ggw:
    gw=ggw+1
    print 'GROSS WEIGHT:', gw

    想要实现的是 如果输入的数字大于20.5 自动无条件向上舍入取整
    如果输入的数字小于20.5 自动无条件取整到 .5

    现在每次输入整数的时候,得到的值都是+1,输入小数就报错

    Traceback (most recent call last):
    File "E:/Python/Study/hello.py", line 2, in <module>
    ggw=int(gw)
    ValueError: invalid literal for int() with base 10: '12.3'



  • gw=raw_input('enter an number:')
    ggw=int(gw)
    if gw<20.5:
    if gw==ggw:
    gw=gw
    else:
    if gw-ggw>0.5:
    gw=ggw+1
    else:
    gw=ggw+0.5
    else:
    if gw==ggw:
    gw=gw
    elif gw>ggw:
    gw=ggw+1
    print 'GROSS WEIGHT:', gw

    想要实现的是 如果输入的数字大于20.5 自动无条件向上舍入取整
    如果输入的数字小于20.5 自动无条件取整到 .5

    现在每次输入整数的时候,得到的值都是+1,输入小数就报错

    Traceback (most recent call last):
    File "E:/Python/Study/hello.py", line 2, in <module>
    ggw=int(gw)
    ValueError: invalid literal for int() with base 10: '12.3'



  • 你这问题描述得太成问题了.

    呵呵.只考虑实现.
    你自己优化代码吧.

    [code]

    a = '12.6'

    ret = 0.0
    b = int(float(a)*10)

    if(b>=205):
    if(int(b/10)*10<b):
    ret = int(b/10)+1
    else:
    ret = int(b/10)

    else:
    if(b>(int(b/10)*10+5)):
    ret = (int(b/10)*10+10)/10
    else:
    ret = (int(b))/10+0.5

    print ret
    [/code]



  • 非常感谢!!
    直接用 int(a) 不行?


  • 管理员

    我来试试:
    [code]
    gw = raw_input('please enter number:')
    try:
    x, y = gw.split('.')
    if int(y[0])>5 or int(x)>=21:
    result = str(int(x)+1)
    else:
    result = x+'.5'
    except:
    result = gw
    print 'Gross weight: %s ' % result
    [/code]



  • 非常感谢,又学了一招 <!-- s:lol -->:lol<!-- s:lol -->


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待