Salve ragazzi..sono alle prese con un progetto universitario e per quanto stupido vi sembrerà il quesito, non riesco a risolverlo.
Ho un client che deve inviare al server un valore in double ma riesco solo a farlo arrivare troncato,cioè perdendo i decimale,nonostante le dovute conversioni..Per esempio se dal client parte 40.99 al server mi arriva 40.00 e quie decimali mi servono..Potete aiutarmi??Grazie

CLIENT
codice:
memset(buffer,0,BUFF_SIZE);
printf("inserire numero:\n");
scanf("\n%d",&codice);
snprintf(buffer,  sizeof(buffer), "%lf\r\n",citta_cli[codice].lat);   //citta_cli[codice].lat è contenuto in una struct ed è dichiarato double
if ( write(sockfd, buffer, sizeof(buffer)) <0)
    {
    perror("write error");
    exit(-1);
    }
SERVER
codice:
memset(buffer,0,BUFF_SIZE);
   if (read(connfd, buffer,sizeof(buffer))<0)
    {
        perror("read error");
        exit(-1);
        }
printf("\nbufferINchar: %s \n",buffer);
a=atof(buffer);
printf("\nbufferINdoulbe: %lf \n",a);