为什么这个函数的python的算术总是return10?

Why the the arithmetic of python always return 10 for this function?

此代码的输出始终为 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。因此,对于 t 的足够大的值,您有 10*(1-0)101 太大了,所以对于 1 的条目你会得到 10,以及任何比这更大的条目。 -1,顺便说一句,给出了一个有趣的答案,输入一个大的负值会使程序崩溃并出现溢出错误。

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

  • 让我们 t=1 然后 t/T=10010**-100=0 所以 Vs*(1-0)=10
  • 如果您将 t=1 增加到另一个大整数,它将始终为 10。

如果你尽可能地取 t 一个很小的数字,那么你会看到输出变化。

我假设 t 为 0.00001234。现在你的输出是 0.02837357076786451。所以,你应该把 t 作为最小值来改变输出 10.