Python有关round函数


#数值运算
a=float(input())
b=float(input())
c=float(input())

import math

x=(-b+math.sqrt(b*b-4*a*c))/(2*a)

print(round(x,2))

为啥当我输入三行的数字分别是(1,2,1)的时候,结果是-1.0,只有保留一位小数,其次,要怎么这个解决问题

试试format控制格式

除非对精确度没什么要求,否则尽量避开用round()函数。近似计算我们还有其他的选择:

使用math模块中的一些函数,比如math.ceiling(天花板除法)。
字符串格式化可以做截断使用,例如 "%.2f" % value(保留两位小数并变成字符串……如果还想用浮点数请披上float()的外衣)。
对浮点数精度要求如果很高的话,请用嘚瑟馍,不对不对,请用decimal模块。

嗨小郑,首先x得出来的值就是-1.0,round函数有个特点,就是不管你要求保留多少位小数,他都会舍弃掉小数后面的0,(为什么不是-1而是-1.0,因为第一个参数是浮点型)。比如round(1.50000,3)得出的值也是1.5,round的第二个参数是指保留的非0小数长度,如果本身就没有这么长的话,也不会补够这么多。format不一样,你规定了多长就得补多长。可以看看
https://blog.csdn.net/lishuaigell/article/details/122443390?spm=1001.2014.3001.5502