强制类型为整数而不是 python 中的浮点数

Force type to be integer and not float in python

我正在编写一个简单的程序来计算数字的总和。因此,例如 123 将是 1 + 2 + 3 = 6 简单。当我写代码时

def sumOfNumber(number):
    sum = 0

    while(number >= 1):
        temp = number % 10
        sum += temp
        number /= 10

    return sum

main():
    sumOfNumber(123)
    # 6.53

谁能解释一下?

我最后只是投射了它,但如果有人有更好的解决方案,请也 post。

def sumOfNumber(number): 
sum = 0
    while(number >= 1):
        temp = int(number % 10)
        sum += temp
        number = int(number / 10)

    return sum

main():
    sumOfNumber(123)
    # 6

您似乎在使用 Python3,其中除法 / 输出浮动。将原位除法 /= 替换为整数除法 //= 以去除小数。

number //= 10

尽管如此,如果您想逐位操作一个数字,最好将其转换为 str。这允许遍历它的数字并对它们求和。

def sumOfNumber(number):
    digits = str(number)
    sum_ = 0

    for d in digits:
        sum_ += int(d)

    return sum_

sumOfNumber(123) # 6

使用内置的 sum 函数,您甚至可以在一行中重写此函数。

def sumOfNumber(number):
    return sum(int(x) for x in str(number))