获得平方根值

问题描述 投票:1回答:2

我是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)作为答案吗?

python math
2个回答
0
投票

通用编程语言不能以这种方式工作。它们使用最接近的内部逼近(以二进制形式存储,以十进制形式报告)。你不能得到4sqrt(2),你可以获得1/3,或任何其他非标准(用于计算机)表示。 1/3不能用十进制(0.3333 ...)或二进制(0.01010101 ......)的有限“标准”字符串精确表示。

确实存在一些软件包可以为您提供低基数,有理数等的近似值,但您需要专门找到并导入它们;该语言本身并不支持它们。


0
投票

如果你正在寻找打印语句,字面上说4sqrt(2)然后没有,它非常复杂写一个函数将你的答案转换为根形式,99.9%的时间不值得。

浮动意味着你要确保bulma(x, y, z, t)的类型。浮点数是浮点小数。

© www.soinside.com 2019 - 2024. All rights reserved.