|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
[c] formato double
Ciao hw-dipendenti,
ho un problema che mi si ripresenta spesso... Lavoro in C e compilo con gcc di cygwin: ho il problema che mi ritrovo a smanettare con double che hanno come separatore decimale la virgola e quindi non leggibi con fprintf(f1,"%f"...) C'è qualcosa che posso impostare all'inizio del mio file in C che gli faccia capire qual'è lo standard dei double sull'attuale s.o.? cipi |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Per il momento ho risolto così ma vorrei vedere se si può fare richiamando dei parametri di winzoz...
Codice:
for(j=0;j<=strlen(sVariables[i]);j++)
{
ch=sVariables[i][j];
if(ch==',') sVariables[i][j]='.';
}
dblVariables[j]=atof(sVariables[i]);
Attendo vostre nuove! cipi |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Mar 2004
Messaggi: 65
|
la funzione strchr ricerca un carattere in una stringa e restituisce il puntatore a quel carattere
puoi provare una cosa del tipo *strchr(stringa,',')='.' magari inserisci anche # define converti(AA,BB) *strchr(AA,',')='.'; bb=atof(AA); ... o qualcosa di simile ....così la puoi utilizzare meglio |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
#include <locale.h>
setlocale(LC_ALL, "it_IT"); Questo sotto linux richiede i pacchetti di localizzazione "locales" e "locales-it"; non ho idea di come è implementato sotto windows/cygwin.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Quote:
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Quote:
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Quote:
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Quote:
Codice:
setlocale(LC_ALL, "it_IT.ISO-8859-1"); printf(setlocale(LC_ALL,"")); Ora, qualcuno ha qualche idea? |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Le libc caricano le definizioni dei "locale" da un database apposito. Sotto linux questo database è composto da uno o più pacchetti che vengono installati in fase di installazione del sistema operativo.
Prova a rieseguire il setup di cygwin, e a cercare e installare eventuali pacchetti il cui nome inizia con "locale". Nota infine che per richiedere il locale corrente, devi chiamare setlocale(..., NULL), non setlocale(..., "").
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Quote:
Pazienza.... |
|
|
|
|
|
|
#11 | |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
pace all'anima sua. sopravvive solo in pochi esemplari in deriva genetica (i.e. trombano tra parenti) in qualche provincia sperduta e culturalmente arretrata. anzi l'uso della sgorbia come separatore decimale può essere usato come test di sottosviluppo. ma anche quando era viva non costituiva (e non costistuisce) comunque problema in contesti civilizzati. P.S. punto solo punto: in basso come separatore decimale, in alto come separatore di migliaia. |
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Quote:
|
|
|
|
|
|
|
#14 | |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
|
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#16 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
comunque dovresti sapere, ammesso che tu faccia un minimo di calcolo scientifico (?) , che i numeri si scrivono sempre con mantissa ed esponente.
|
|
|
|
|
|
#17 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
vai tranquillo solo punto.
il resto è provincia. Ultima modifica di a2000 : 13-07-2004 alle 15:41. |
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Re: [c] formato double
Quote:
|
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
La risposta di prima era la n. 17 e così.... ecco la risposta 18
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:10.


















