[英]I'm printing the return of a function but it doesn't work as intended
[英]Algorithm for MinMax of a function doesn't work as intended
我只是开始编码以帮助我的儿子,我起草了几行代码以在确定的时间间隔内获得函数的Min Max。 但是,显示的最小值不是整数,我不知道为什么...这是代码:
a=float(input("Valeur de a ?"))
b=float(input("Valeur de b ?"))
pas=float(input("Valeur du pas ?"))
val_max=a**2
val_min=a**2
while a<b+pas:
if a**2>val_max:
val_max=a**2
if a*2<val_min:
val_min=a**2
a=a+pas
print("Maximum :",val_max)
print("Minimum :",val_min)
这是输出:
Valeur de a?-4
Valeur de b?3
Valeur du pas?0.1最大值:16.0最小值:5.830945499626795e-30
为什么最小值不为0,而不是5.8 ^ -30?
这是因为从未测试过将使min = 0的值a = 0。 当您输入0.1作为pas的值时,它将转换为二进制表示形式,但是1/10等于0.000110011001100110011001100110011 ...的二进制形式。 该程序将其四舍五入为0.000110011001100110011,即.099999904632568359375。 这样,您永远不会精确地落在零,也不会获得最小的期望值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.