Вы можете хранить свои двойные значения как строки и использовать LIKE и CONTAINS.
public class ProductModelS: Object {
@objc dynamic var id: String? = ""
@objc dynamic var amount: String = "0.0"
convenience init(id: String?, amount: String) {
self.init()
self.id = id
self.amount = amount
}
}
class ProductModelTests: XCTestCase {
func testDoubleAsString() {
let models = [
ProductModelS(id: UUID().uuidString, amount: String(format: "%.02f", 10.00)),
ProductModelS(id: UUID().uuidString, amount: String(format: "%.02f", 100.00)),
ProductModelS(id: UUID().uuidString, amount: String(format: "%.02f", 101.00)),
ProductModelS(id: UUID().uuidString, amount: String(format: "%.02f", 200.00)),
]
let config = Realm.Configuration(inMemoryIdentifier: UUID().uuidString)
do {
let realm = try Realm(configuration: config)
try realm.write {
realm.add(models)
}
let containsResults = realm.objects(ProductModelS.self)
.filter("amount CONTAINS %@", "\(10)")
let likeResults = realm.objects(ProductModelS.self)
.filter("amount LIKE %@", "*\(10)*")
print("CONTAINS: \(containsResults)")
print("LIKE: \(likeResults)")
} catch {
print("Product model error \(error)")
}
}
}