我是python的绝对初学者。
import math
def bulma(x, y, z, t):
return math.sqrt((x ** 2) + (y ** 2) - (2 * x * y * z))
def bulucu():
x = float(input("İlk kenarı giriniz."))
y = float(input("İkinci kenarı giriniz."))
t = float(input("Aralarındaki açıyı radyan cinsinden giriniz."))
z = float(math.cos(math.radians(t)))
print(float(bulma(x, y, z, t)))
bulucu()
得到了余弦法的代码。
我的问题是例如当我输入时,4,4作为长度,90作为它们之间的角度我应该得到4sqrt(2)但不是我得到5.65685424949238。
我知道5.65685424949238 = 4sqrt(2)而且我知道我在print(float(bulma(x, y, z, t)))
中使用了“float”。
我可以得到4sqrt(2)作为答案吗?
通用编程语言不能以这种方式工作。它们使用最接近的内部逼近(以二进制形式存储,以十进制形式报告)。你不能得到4sqrt(2),你可以获得1/3,或任何其他非标准(用于计算机)表示。 1/3不能用十进制(0.3333 ...)或二进制(0.01010101 ......)的有限“标准”字符串精确表示。
确实存在一些软件包可以为您提供低基数,有理数等的近似值,但您需要专门找到并导入它们;该语言本身并不支持它们。
如果你正在寻找打印语句,字面上说4sqrt(2)
然后没有,它非常复杂写一个函数将你的答案转换为根形式,99.9%的时间不值得。
浮动意味着你要确保bulma(x, y, z, t)
的类型。浮点数是浮点小数。