Ho un'operazione di servizio WCF che restituisce un oggetto con le proprietà long
e List<string>
. Quando eseguo il test dell'operazione in un'applicazione WCF, tutto funziona correttamente e i valori sono corretti. Tuttavia, devo essere in grado di chiamare il servizio utilizzando il formato jQuery e JSON. Il valore della proprietà long
si modifica apparentemente quando l'ho letto di nuovo nella funzione OnSucceed
.JSON.Stringify() sui grandi numeri modifica il valore numerico?
Dopo la ricerca, ho riscontrato che JSON.stringify
modifica i valori massimi. Quindi, in codice come questo:
alert(JSON.stringify(25001509088465005));
... mostrerà il valore come 25001509088465004
.
Cosa sta succedendo?
Demo qui: http://jsfiddle.net/naveen/tPKw7/
Per favore chiarisci la tua domanda. –
Basta testare il codice javascript sopra e vedere cosa hai inviato e cosa ha restituito JSON.stringify. –
A causa del limite di precisione dei javascript Tipo di numero. Vedi anche: http://stackoverflow.com/questions/588004/is-javascripts-math-broken – mbarkhau