江湖散人 发表于 2021-4-5 21:06:50

浮点数的转换

def times(x,y):
      return(x*y)


a=times(3.14,5)
a=15.700000000000001




浮点数的小数点保留几位数如何实现呢?比如说这个时候我只想保留2位小数。

昨非 发表于 2021-4-5 21:10:43

def times(x,y):
      return(x*y)

a=times(3.14,5)
print("%.1f"% a)

限制一位小数
输出:15.7

肖-肖 发表于 2021-4-5 21:18:53

这是Python吗?
如果是的话那么:
保留几位小数有一个很好用的函数round,可以将任意浮点数保留到指定位数。
例如你的例子可改为:
def times(x,y):
      return(round(x*y),2));


a=times(3.14,5)

Daniel_Zhang 发表于 2021-4-5 22:39:35

肖-肖 发表于 2021-4-5 21:18
这是Python吗?
如果是的话那么:
保留几位小数有一个很好用的函数round,可以将任意浮点数保留到指定位数 ...

我觉得是的

没见过其他的语言定义函数是 def 啊

而且函数还没有中括号的也没几个吧

Daniel_Zhang 发表于 2021-4-5 22:43:35

# 方法 1
def times(x, y):
    return round(x*y, 2)


a = times(3.14, 5)
print(a)

# 方法 2


def times1(x, y):
    return x*y


b = times1(3.14, 5)
print("{:.2f}".format(b))

江湖散人 发表于 2021-4-5 23:09:08

昨非 发表于 2021-4-5 21:10
限制一位小数
输出:

谢谢啊

江湖散人 发表于 2021-4-5 23:09:38

Daniel_Zhang 发表于 2021-4-5 22:43


谢谢!

江湖散人 发表于 2021-4-5 23:11:03

肖-肖 发表于 2021-4-5 21:18
这是Python吗?
如果是的话那么:
保留几位小数有一个很好用的函数round,可以将任意浮点数保留到指定位数 ...

round((x*y),2)里边的2是什么意思啊?我试了一下,写成3,结果还是一样啊

Daniel_Zhang 发表于 2021-4-5 23:20:52

江湖散人 发表于 2021-4-5 23:11
round((x*y),2)里边的2是什么意思啊?我试了一下,写成3,结果还是一样啊

https://www.runoob.com/python3/python3-func-number-round.html

因为你的数字是 15.700000000000001

所以在 round 里,不论是 2 还是 3,都是 15.70 或 15.700

round会抹掉小数末尾的 0,所以都是 15.7
页: [1]
查看完整版本: 浮点数的转换