2017-08-05 34 views
2

作品在蘋果號碼MOD功能從斯威夫特不同(在德國的版本,它是REST在數字如何REST功能斯威夫特

在Numbers:

4,37937=MOD(−1,90373;6,2831)

In swift 3:

let rem1: Double = -1.90373 
let rem = rem1.truncatingRemainder(dividingBy: 6.28318530717959) 
print(rem) 

Prints: -1.90373

我在做什麼錯了?

回答

0

A%B執行下述操作並返回其餘

a = (b x some multiplier) + remainder 

一些乘數爲b的倍數,將適合內的最大數量。

例如一些整數常數[0 ...]

documentation的提供了以下作爲一個例子

插入-9和4代入公式得到:

-9 =(4×-2) + -1

給出-1的餘數值。

對於b的負值,b的符號被忽略。這意味着 %b和%-b總是給出相同的答案。

1

我找到了解決辦法:

let rem1: Double = -1.90373 
let rem = rem1 - 6.28318530717959 * floor(rem1/6.28318530717959) 
print(rem) 

會做同樣喜歡蘋果的數字MOD在做什麼。