python 为什么我的数字列表返回时在末尾附加了一个小数?[关闭]

vatpfxk5  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(223)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

9小时前关门了。
Improve this question
我下面的代码在摄氏度、华氏度和开尔文之间转换温度。

def convTemp(x, fro = "C", to = "F"):
    if fro == to:
        warnings.warn("Your 'fro' parameter is the same as your 'to' parameter!")
        return (x)

    if fro == "C":
        if to == "K":
            return np.array(x) + 273.15
        else:
            return np.array(x) * (9/5) + 32
    elif fro == "F":
        if to == "C":
            return (np.array(x) - 32) * (5/9)
        else:
            return (np.array(x) - 32) * (5/9) + 273.15
    elif fro == "K":
        if to == "C":
            return np.array(x) - 273.15
        else:
            return np.array(x) - 273.15 * (9/5) + 32

我在测试

convTemp([0,10,20])

然后我得到

array([32., 50., 68.])

但我想要的是

array([32, 50, 68])

我该怎么解决这个问题?

6ie5vjzr

6ie5vjzr1#

好了,你的问题是你给了numpy浮点数。因为numpy是用c写的,当它把每个数字转换成字符串显示给你时,它会确保它有一个“.”,这样你就可以知道它是一个浮点数。你有两个解决方案:

  • 使用一个整数numpy数组,而不是一个浮点数,通过执行arr = np.empty(9, dtype=int),然后只通过舍入得到的值来给它整数值。尽管我怀疑这是你想要的,因为温度不是严格的整数。
  • 只要用你自己的方式打印它。如果你曾经尝试用一个numpy数组来打印print(arr),它总是会显示一个“.”,所以你的解决方案是创建你自己的打印函数。
for i in range(len(arr)):
    print(f"{arr[i]:.0f}, end = " ")

相关问题