org.json.JSONObject.getLong da un resultado impreciso

En Android, como podemos ver en la figura adjunta, el json que recibí del servidor es "id = -7051563524465472446"pero el códigojsonObject.getLong("id") da -7051563524465472512.

Puedo ver cadagetLong la conversión tiene un resultado impreciso (¿o pierde precisión?) en los últimos 4 dígitos. ¿Hay algo que me perdí?

Mis configuraciones: java 1.6.0_41, Android 4.1.2, IntelliJ 12 IDE.

Respuestas a la pregunta(3)

Su respuesta a la pregunta