【发布时间】:2018-01-20 06:40:47
【问题描述】:
我正在尝试向服务器执行 HTTP 请求:内容是 JSON 对象,其中包含键“amount”的数值。如果“金额”是带有小数位的值,例如1.6、请求中会包含值 1.6000000000000001,服务器不接受这个值(api是Java制作的,类型是浮点数。我不能向服务器发送字符串,因为从我那里接收数据的API只能接受“金额”的数字"。我尝试使用 Siesta Framework 或 dataTask 执行请求,但结果始终相同
这就是我创建请求的方式(我省略了不太重要的部分)
let jsonData = try! JSONSerialization.data(withJSONObject: jsonObject) // jsonObject contains the Double value "amount"
let request = URLRequest(url: url)
request.httpBody = jsonData
let task = URLSession.shared.dataTask(with: request)
task.resume()
【问题讨论】:
-
你能包含一些代码吗
-
这是在编程中使用浮点值的一个基本问题stackoverflow.com/questions/2100490/…
-
是的。但这仍然不能解决我的问题,对不起
-
您正在尝试修复客户端上的服务器问题。服务器上的 java 代码应该正确解析该值。如果它不这样做,那就是服务器问题。如果你需要精确,你应该使用字符串(和 java
BigDecimal)。 -
谢谢。但不幸的是,我不拥有该项目的服务器端,此时所有者无法更改该部分
标签: ios swift siesta-swift