Могу ли я сравнить два байта значения на основе почти равных в Swift - PullRequest
0 голосов
/ 22 апреля 2019

у меня есть два значения в байтах в двух разных переменных.Я хочу выполнить определенное действие, когда значения почти равны друг другу.У меня есть любой метод в swift, в котором я могу выполнить любое действие со значениями переменных, почти равными.Если вы порекомендуете мне какой-нибудь код, учебник или статью для достижения этой цели.Я новичок в Свифте, поэтому, пожалуйста, не голосуйте вниз.

Ответы [ 3 ]

0 голосов
/ 22 апреля 2019

Точно, я не думаю, что есть такой метод, который сравнивает приблизительные значения, но если вы обсудите, что именно вы хотите сделать, мы найдем лучшее альтернативное решение.

0 голосов
/ 22 апреля 2019

Вот решение:

func nearlyEqual(a: Float, b: Float, epsilon: Float) -> Bool {
let absA = abs(a)
let absB = abs(b)
let diff = abs(a - b)
if a == b {
    return true
} else if (a == 0 || b == 0 || absA + absB < Float.leastNonzeroMagnitude) {
    // a or b is zero or both are extremely close to it
    // relative error is less meaningful here
    return diff < (epsilon * Float.leastNonzeroMagnitude)
} else {
    return diff / (absA + absB) < epsilon
}
}

Тогда вы можете использовать его следующим образом:

    print(nearlyEqual(a: 1.2, b: 1.4, epsilon: 0.2))

Это вернет true.

0 голосов
/ 22 апреля 2019
let string1 = "Hello World"
let string2 = "Hello"
let byteArrayOfString1: [UInt8] = string1.utf8.map{UInt8($0)} //Converting HELLO WORLD into Byte Type Array
let byteArrayOfString2: [UInt8] = string2.utf8.map{UInt8($0)} //Converting HELLO into Byte Type Array

if byteArrayOfString1 == byteArrayOfString2 {
    print("Match")
}else {
    print("Not Match")

}

Для получения дополнительной справки посетите https://medium.com/@gorjanshukov/working-with-bytes-in-ios-swift-4-de316a389a0c

...