Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: quack - Febbraio 10, 2024, 10:42:13 am

Titolo: [SOLVED] Mostrare sempre il segno di un numero con Format
Inserito da: quack - Febbraio 10, 2024, 10:42:13 am
Ciao a tutti,

sto usando la funzione Format per formattare delle stringhe contenenti 8 double;
il problema è che se il segno è positivo viene omesso mentre ho bisogno che venga mostrato sempre.

Magari c'è un'opzione ma non riesco a trovarla...
Avete suggerimenti da darmi ?

Grazie
qk
Titolo: Re:Mostrare sempre il segno di un numero con Format
Inserito da: DragoRosso - Febbraio 10, 2024, 11:07:50 am
Non mi risulta.
In Excel (in generale nei fogli di calcolo si), ma nel "Format" standard no. Anche se ci metti il segno meno dopo il % questo indica solo di lasciare un spazio comunque per il segno (vuoto se il valore è positivo, simbolo '-' se negativo) nella stringa risultante (almeno, una volta era così).

Devi farti una funzione apposita che inserisce il segno "nello" spazio lasciato dal format.


Ciao

Edit: ho scritto una cavolata ... il segno meno è il giustificatore per l'allineamento a sinistra della valore risultante ....
Titolo: Re:Mostrare sempre il segno di un numero con Format
Inserito da: quack - Febbraio 10, 2024, 01:24:57 pm
Non mi risulta...
Grazie DragoRosso, nel frattempo ho trovato questo thread che conferma quanto dici  :'( .

https://stackoverflow.com/questions/11291960/how-to-format-a-number-with-and-sign-in-delphi (https://stackoverflow.com/questions/11291960/how-to-format-a-number-with-and-sign-in-delphi)

Per adesso l'opzione migliore è creare le singole stringe corrette e concatenarle.
Saluti
qk
Titolo: Re:Mostrare sempre il segno di un numero con Format
Inserito da: Riccardo Ferrari - Febbraio 10, 2024, 06:27:07 pm
Ciao a tutti,

sto usando la funzione Format per formattare delle stringhe contenenti 8 double;
il problema è che se il segno è positivo viene omesso mentre ho bisogno che venga mostrato sempre.

Magari c'è un'opzione ma non riesco a trovarla...
Avete suggerimenti da darmi ?

Grazie
qk
Ho avuto il solito problema tempo fa, non vado a cercare, non ricordo nemmeno in quale occasione.
Ricordo però che avevo risolto banalmente così:
If s[1]<>’-‘  then s:=’+’+s;
Titolo: Re:Mostrare sempre il segno di un numero con Format
Inserito da: quack - Febbraio 13, 2024, 07:14:11 pm
Ho avuto il solito problema tempo fa, non vado a cercare, non ricordo nemmeno in quale occasione.
Ricordo però che avevo risolto banalmente così:
Codice: [Seleziona]
If s[1]<>’-‘ then s:=’+’+s;
Grazie Riccardo. Alla fine ho fatto una cosa simile:
Codice: [Seleziona]
if AValue < 0 then  
  result := FloatToStr(AValue)
else 
  result := '+' + FloatToStr(AValue);
Saluti