¿Por qué double se convierte a int en una cadena JSON?

Acabo de codificar para poner una matriz de valores dobles en elJsonObject. Pero, todos mis valores dobles se convierten en valores int, cuando lo imprimo. ¿Alguien puede ayudarme a entender lo que está sucediendo detrás? Por favor, hágame saber la mejor manera de poner matrices primitivas enJsonObject

public class JsonPrimitiveArrays {        
    public static void main(String[] args) {
        JSONObject jsonObject = new JSONObject();
        double[] d = new double[]{1.0,2.0,3.0};
        jsonObject.put("doubles",d);
        System.out.println(jsonObject);            
    }        
}

Salida:

{"dobles": [1,2,3]}

Respuestas a la pregunta(3)

Su respuesta a la pregunta