gpt4 book ai didi

ios - Moya/Alamofire 请求变量问题

转载 作者:行者123 更新时间:2023-11-28 23:21:33 24 4
gpt4 key购买 nike

我正在用 Swift 编写一个 iOS 应用 并使用 Moya 作为网络层。

我正在制作一个要在正文中发送的请求对象,并使用 Moya 执行 API 调用:

struct OrderRequest{
var amount:Double
}

let order=OrderRequest(amount:100.57)

我正在将此对象转换为 JSONDict,然后再转换为数据。

if let json = JSONDict(from: order) {
let data = try JSONSerialization.data(withJSONObject: json, options: [])
}

我正在执行 Moya 请求,它在内部使用 Alamofire .

问题:

它发送的不是 100.57 的准确值,而是发送 100.56999999999999

我的问题是关于下面一行:

let jsonString = String(data: jsonData!, encoding: .utf8)

它将数据从 DATA 转换为 STRING。这是将 100.57 转换为 100.56999999999999

如何解决?我是否错误地制作了 DATA 对象?

最佳答案

这就是二进制浮点运算的工作原理。 Double 的精度约为 15 位,Float 的精度要低得多。错误的不是代码,而是您的期望。这在 C、C++、Objective-C、Java 等中也是一样的。还有 here你可以找到同样的问题

关于ios - Moya/Alamofire 请求变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59611460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com