Autore Topic: Invio di variabili float in POST ad un server esterno  (Letto 2045 volte)

Offline daveblack

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • http://www.linkedin.com/profile/view?id=155824415&trk=tab_pro
    • Mostra profilo
    • DC Hall
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Mac OSX 10.7 Lion
Invio di variabili float in POST ad un server esterno
« il: 15 Gennaio 2012, 13:30:26 CET »
0
Ciao a tutti, per una mia applicazione ho bisogno di inviare delle variabili di tipo float ad uno script PHP.
Usando BasicNameValuePair per l'invio dei parametri in POST mi restituisce errore perché il costruttore della classe accetta solo String.

Mi serve inviare un float perchè se invio una String a PHP quando vado a fare il casting in float mi restituisce il numero prima del punto!
esempio:
Stringa che invio da app android: 45.300982
in php faccio $var = (float)$_POST['stringa']; e questo mi restituisce 45.

C'è qualche modo per inviare dati float in POST?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Invio di variabili float in POST ad un server esterno
« Risposta #1 il: 15 Gennaio 2012, 16:03:46 CET »
0
Ciao a tutti, per una mia applicazione ho bisogno di inviare delle variabili di tipo float ad uno script PHP.
Usando BasicNameValuePair per l'invio dei parametri in POST mi restituisce errore perché il costruttore della classe accetta solo String.

Hai preso in considerazione l'idea di fare un cast?

Codice (Java): [Seleziona]
float f = 12.0f;
String str = Float.toString(f);

Offline daveblack

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • http://www.linkedin.com/profile/view?id=155824415&trk=tab_pro
    • Mostra profilo
    • DC Hall
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Mac OSX 10.7 Lion
Re:Invio di variabili float in POST ad un server esterno
« Risposta #2 il: 15 Gennaio 2012, 19:39:33 CET »
0
Ciao Ricky, il fatto è che la stringa che invio la prendo direttamente da una TextView in questo modo:

(è un esempio)
Codice (Java): [Seleziona]
TextView x = (TextView) this.findViewById(R.id.textView);

// codice

String daInviare = x.getText().toString();

//invio tramite POST

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Invio di variabili float in POST ad un server esterno
« Risposta #3 il: 15 Gennaio 2012, 20:37:46 CET »
0
Secondo me bisognerebbe fare un po' di debugging.
Prova a fare un print_r($POST) per vedere che cosa arriva al server...

Offline daveblack

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • http://www.linkedin.com/profile/view?id=155824415&trk=tab_pro
    • Mostra profilo
    • DC Hall
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Mac OSX 10.7 Lion
Re:Invio di variabili float in POST ad un server esterno
« Risposta #4 il: 16 Gennaio 2012, 08:14:04 CET »
0
Arriva giusto, se invio 45.678912 php riceve 45.678912. Ho già fatto echo $_POST['stringa'];  :-(

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Invio di variabili float in POST ad un server esterno
« Risposta #5 il: 16 Gennaio 2012, 09:32:03 CET »
+1
Controlla l'impostazione della lingua:

https://bugs.php.net/bug.php?id=53711

in italiano il separatore della parte decimale è la virgola e non il punto.
adb logcat | tee /tmp/logcat | grep TAG

Offline daveblack

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • http://www.linkedin.com/profile/view?id=155824415&trk=tab_pro
    • Mostra profilo
    • DC Hall
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Mac OSX 10.7 Lion
Re:Invio di variabili float in POST ad un server esterno
« Risposta #6 il: 16 Gennaio 2012, 16:07:59 CET »
0
Non succede nulla con setlocale(LC_NUMERIC, 'en_US')...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Invio di variabili float in POST ad un server esterno
« Risposta #7 il: 16 Gennaio 2012, 16:13:49 CET »
0
Arriva giusto, se invio 45.678912 php riceve 45.678912. Ho già fatto echo $_POST['stringa'];  :-(

Scusate ma io non capisco dove sta il problema... se parte 45.678912 e arriva 45.678912 che problema c'è?  o_O

Offline daveblack

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • http://www.linkedin.com/profile/view?id=155824415&trk=tab_pro
    • Mostra profilo
    • DC Hall
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Mac OSX 10.7 Lion
Re:Invio di variabili float in POST ad un server esterno
« Risposta #8 il: 16 Gennaio 2012, 16:38:47 CET »
0
Il problema è che parte di tipo String e arriva di tipo String... ma poi dove arriva mi serve fare un casting in float ma mi prende il numero prima della virgola e non tutto il numero che ho inviato

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Invio di variabili float in POST ad un server esterno
« Risposta #9 il: 16 Gennaio 2012, 16:54:37 CET »
0
In questo caso il problema non è android ma php! ;)

Partiamo dal presupposto che su post possono viaggiare solo stringhe, quindi in fatto che arrivi 45.678912 è già un risultato corretto.

Poi andiamo OT e parliamo di php, che è un linguaggio senza tipi impliciti, quindi *non* devi fare il cast a float. E' php infatti che in base all'uso che fai della variabile a fare un cast interno.

Puoi leggerti questo articolo che parla della conversione: PHP: Strings - Manual

Offline daveblack

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • http://www.linkedin.com/profile/view?id=155824415&trk=tab_pro
    • Mostra profilo
    • DC Hall
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Mac OSX 10.7 Lion
Re:Invio di variabili float in POST ad un server esterno
« Risposta #10 il: 16 Gennaio 2012, 17:11:48 CET »
0
Ho risolto... era php che interpretava il punto inviato da java come una virgola... infatti guardando il LogCat la risposta che veniva visualizzata era un numero con la virgola!
mi è bastato fare un str_replace() in php ed è tutto andato a buon fine... Grazie a tutti li stesso =)