如何检查 double 是否以 .33 结尾

how to check if a double ends in .33

我正在 swift 中编写,我需要执行与此类似的代码 if myDouble ends in .33 { "carry out code"} 如何在忽略整数的同时 运行 检查我的数字的十进制值? 谢谢

只需执行 abs(myDouble - floor(myDouble)),即可获得您的十进制值。然后进行任何处理无限 3 或其他所需的舍入或格式化

确保导入 Foundation,它需要使用 floor: import Foundation

let double = 4.3391762
let newDouble = String(format: "%.03f", double)
let thirtyThree = abs(Double(newDouble)! - floor(Double(double))) * 100

floor(thirtyThree)

可能可以重构,但有一种方法。

let myDouble = 10.0/3  //  3.333333333333333

if String(format: "%.2f", myDouble).hasSuffix(".33") {
    print(true)
}