为什么python的算法总是为这个函数返回10?

为什么python的算法总是为这个函数返回10?,python,math,numeric,numerical-methods,pointer-arithmetic,Python,Math,Numeric,Numerical Methods,Pointer Arithmetic,此代码的输出始终为10。我做错什么了吗?我还需要“Vc”的负有理指数方程的帮助 设R=10000,C=1e-6,Vs=10 R= 10000 C= 10**-6 Vs= 10 T= float(R*C) t= float(input("Enter the value of t:")) Vc=Vs*(1-(10**-(t/T))) print(format(Vc,".5f")) 提前感谢您的回复。您并不总能收到10

此代码的输出始终为10。我做错什么了吗?我还需要“Vc”的负有理指数方程的帮助

设R=10000,C=1e-6,Vs=10

   R= 10000
   C= 10**-6
   Vs= 10
   T= float(R*C)
   t= float(input("Enter the value of t:"))
   Vc=Vs*(1-(10**-(t/T)))
   print(format(Vc,".5f"))

提前感谢您的回复。

您并不总能收到
10
。对于较小的数字,您会得到一个非
10
的值。例如,尝试输入
.0001


对于较大的
t
,表达式
10**-(t/t)
是一个非常小的数字,Python将其视为
0
。因此您有
10*(1-0)
,或
10
,以获得足够大的
t
1
太大,因此如果输入
1
,则会得到
10
,以及任何大于该值的值<代码>-1,顺便说一句,给出了一个有趣的答案,输入一个大的负值会导致程序崩溃并出现溢出错误。

好吧,当
t
大于1时,它将始终打印10。因为
T
0.01
并且如果您提供的
T
大于1,则您的代码正在协商
1-(10**-(T/T))
到1

  • 让我们
    t=1
    然后
    t/t=100
    10**-100=0
    so
    Vs*(1-0)=10
  • 如果将
    t=1
    增加到另一个大整数,它将始终为10
如果您尽可能多地使用
t
一个很小的数字,那么您将看到输出变化

我假设t为
0.00001234
。现在您的输出是
0.02837357076786451
。所以,您应该将t作为最小值来更改输出10