开发者社区> 问答> 正文

python中乘法运算的整数和浮点结果

在同一函数中,我尝试使用整数,浮点数和舍入,但无法获得此结果。我做错了什么?

目标是:

10 * 2.3 = 123

3 * 2.3 = 36.9

我的代码:

def multi(n1, n2):
    x = n1\*2
    return x

我尝试了int(n1 * 2),但是我得到了123和36。然后我尝试了float(n1 * 2),我得到了123.0和36.9。我做错了什么,该如何解决?

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 16:46:54 790 0
1 条回答
写回答
取消 提交回答
  • 您总是将整数与浮点数相乘,这将始终输出浮点数。

    如果您希望函数返回的数字为带小数点后1位的浮点数,则可以使用round(num,1)

    def multi(n1, n2):
        x = n1\*2
        return round(x, 1)
    
    print(multi(10, 12.3))  # outputs '123.0'
    print(multi(3, 12.3))  # outputs '36.9'
    

    为了逃避.0,您可能可以使用if语句,尽管我看不到它的用法,因为使用浮点数进行计算与整数具有相同的输出(当它们是.0时)

    def multi(n1, n2):
        x = n1 * n2
        return round(x, 1)
    
    output = []
    output.append(multi(10, 12.3))  # outputs '123.0'
    output.append(multi(3, 12.3))  # outputs '36.9'
    
    for index, item in enumerate(output):
        if int(item) == float(item):
            output[index] = int(item)
    
    print(output)  # prints [129, 36.9]
    

    这可能会对您有所帮助,但与您匹配的所有事物无关紧要

    回答来源:stackoverflow

    2020-03-23 16:46:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载