为什么这个函数的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)
或 10
。 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
所以 Vs*(1-0)=10
- 如果您将
t=1
增加到另一个大整数,它将始终为 10。
如果你尽可能地取 t
一个很小的数字,那么你会看到输出变化。
我假设 t 为 0.00001234
。现在你的输出是 0.02837357076786451
。所以,你应该把 t 作为最小值来改变输出 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
。因此,对于 t
的足够大的值,您有 10*(1-0)
或 10
。 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
所以Vs*(1-0)=10
- 如果您将
t=1
增加到另一个大整数,它将始终为 10。
如果你尽可能地取 t
一个很小的数字,那么你会看到输出变化。
我假设 t 为 0.00001234
。现在你的输出是 0.02837357076786451
。所以,你应该把 t 作为最小值来改变输出 10.