Ios Swift中的Pi输出

Ios Swift中的Pi输出,ios,swift,ios8,Ios,Swift,Ios8,我正在尝试建立一个度/弧度计算器。以下是我的函数 func degreesToRadians(degrees: Double) -> Double { return degrees * (M_PI / 180) } func radiansToDegrees(radians: Double) -> Double { return radians * (180 / M_PI) } degreesToRadians(90) radiansToDegrees(

我正在尝试建立一个度/弧度计算器。以下是我的函数

func degreesToRadians(degrees: Double) -> Double {

    return degrees * (M_PI / 180)

}

func radiansToDegrees(radians: Double) -> Double {

    return radians * (180 / M_PI)

}

degreesToRadians(90)

radiansToDegrees(M_PI/4)
度弧度(90)返回1.5707963267949 radiansToDegrees(M_PI/4)返回45.0

我想要的是度到弧度的函数,而不是1.5707963267949,我想要输出为π/2。这可能吗

谢谢。

如果你想确切地说:“π/2”,我认为这不可能是双精度的。你可能会得到字符串,但不是数字。我认为最好的选择是选择一个可选的bool,在这种情况下,结果以pi的倍数返回

degreesToRadians(90, resultAsMultipleOfPi:true)

如果此布尔为真,则应返回0.5。您可能需要进行一些舍入以获得更精确的数字。

如果仔细观察什么是真正的
M_PI
,您会发现它是数学中预定义的双精度值。h等于

#define M_PI        3.14159265358979323846264338327950288   /* pi             */

如果您想要更高的精度,可以声明并使用长双精度值。

要将
90
度表示为
π/2
,您需要做的是

  • 考虑
    度数
    超过180的分数(即
    度数
    的分子和
    180
    的分母)

  • 减少该分数(即分子和分母除以分数);在
    90/180
    的情况下,最大的公因数实际上是
    90
    ,产生
    1
    的缩减分子和
    2
    的缩减分母

  • 结果是分数的字符串表示形式,例如

    "\(reducedNumerator)π/\(reducedDenominator)"
    
    显然,如果分子或分母是
    1
    ,则可以抑制字符串的该部分,但希望您得到基本概念


试试看

您可以直接使用M_PI常量

如果您需要浮点格式,只需使用此

let pi = Float(M_PI)

度数弧度
返回双精度。