I would like to convert a string in a json format to a request payload through swift Codable
. However, after converting, the value turns from 24.21
to
24.210000000000001
. how should I fix it?
public func alertData(json: String) throws -> Data? {
guard let jsonData = try json.data(using: .utf8) else {
return nil
}
return jsonData
}
struct Payload: Codable {
var order = OrderData()
}
struct OrderData: Codable {
var amount: Double?
}
let json = "{"order": {"amount": 24.21}}"
let data = try alertData(json: json)!
let payload = try JSONDecoder().decode(Payload.self, from: data)
print(payload) /// Payload(order: prog.OrderData(amount: Optional(24.210000000000001)))