Tôi đã gặp một chút vấn đề lạ khi sử dụng WebAPI và JSON.Net. Khi hủy bỏ chuỗi JSON đã được gửi tới API của tôi, tôi dường như đang mất chính xác! Tôi đang gửi số thập phân đến 3 chữ số thập phân, nhưng khi các giá trị vật hoá trong đối tượng của tôi, nó chỉ có 2 chữ số thập phân!WebAPI, JSON.Net và mất độ chính xác thập phân
Các JSON tôi gửi trông như thế này:
{
id: 1,
name: 'mock data',
value: 123.456
}
này được ràng buộc vào một lớp học mà trông giống như sau:
public class MockObject {
public int Id { get; set; }
public string Name { get; set; }
public decimal Value { get; set; }
}
Chỉ cần cho đầy đủ này về cơ bản là những gì phương pháp WebAPI của tôi trông giống như :
public HttpResponseMessage Post (MockObject data) {
// do something with the value here and return the relevant response
}
Tôi đang gửi dữ liệu qua yêu cầu ajax của JQuery, nhưng tôi có thể xem bài đăng giá trị là chính xác như tôi mong đợi khi kiểm tra các giá trị trong các công cụ chrome dev trước khi gửi và trong fiddler một khi họ đã đi "qua dây".
Khi làm việc gì đó với đối tượng vật chất theo phương pháp Post
, giá trị của "Giá trị" là 123,45.
Nếu tôi gửi 2 hoặc ít chữ số thập phân hơn (ví dụ 123.4 hoặc 123.45) giá trị được hủy đăng ký như mong đợi, tuy nhiên nếu tôi gửi nhiều hơn 2 chữ số thập phân (ví dụ 123.456 hoặc 123.4567 v.v. đến 123,45.
Bất cứ ai khác đi qua vấn đề này? gợi ý Bất kỳ?