Pi 输出输入 Swift

Pi Output In Swift

我正在尝试构建一个 degrees/radians 计算器。这是我的功能。

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) returns 1.5707963267949 radiansToDegrees(M_PI/4) returns 45.0

我想在度数转弧度函数中实现,而不是 1.5707963267949 我希望输出为 π/2。这甚至可能吗?

谢谢。

如果您恰好想要:“π/2”,我认为使用 double 是不可能的。您可能会在 String 中得到它,但不会在数字中得到。我认为您最好的选择是采用可选的布尔值,在这种情况下,结果将作为 pi 的倍数返回。

degreesToRadians(90, resultAsMultipleOfPi:true)

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

如果仔细观察真正的 M_PI,您会发现 math.h 中的预定义双精度值等于

#define M_PI        3.14159265358979323846264338327950288   /* pi             */

如果您想要更精确,您可以声明并改用 long double 值。

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

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

  • 减去这个分数(即将分子和分母都除以 greatest common factor);在 90/180 的情况下,最大的公因数实际上是 90,产生减少的分子 1 和减少的分母 2;

  • 结果作为分数的字符串表示形式,即类似于

    "\(reducedNumerator)π/\(reducedDenominator)"
    

    显然,如果分子或分母是 1,那么您可以抑制字符串的那部分,但希望您能理解基本概念。

试一试。

可以直接使用M_PI常量。

如果你需要浮点格式就用这个,

let pi = Float(M_PI)