我遇到了一些使用WebAPI和JSON.Net的奇怪問題。當反序列化已提交給我的API的JSON時,我似乎失去了精確性!我將小數點提交到小數點後3位,但是當數值在我的對象中實現時,它只有2位小數!WebAPI,JSON.Net和丟失小數精度
我提交的JSON看起來是這樣的:
{
id: 1,
name: 'mock data',
value: 123.456
}
這注定是一個類,它看起來是這樣的:
public class MockObject {
public int Id { get; set; }
public string Name { get; set; }
public decimal Value { get; set; }
}
只是爲了完整性,這基本上就是我的WebAPI方法看起來像:
public HttpResponseMessage Post (MockObject data) {
// do something with the value here and return the relevant response
}
我通過JQuery ajax請求提交數據,但是我可以看到發佈的值與我在提交之前檢查chrome開發工具中的值並在他們「走過電線」之後在提琴手中完全一樣。
當它在Post
方法中使用物化對象做某事時,「值」的值是123.45。
如果我提交2個或更少的小數位(即123.4或123.45),則按照預期將值解序列化,但是如果我提交了2個以上的小數位(即123.456或123.4567等),則該值總是被反序列化至123.45。
任何人碰到這個問題?有什麼建議?