Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    DELPHI: numero con 2 cifre decimali

    Ciao a tutti,
    sto utilizzando db paradox, vorrei impostare un campo numerico obbligatoriamente on 2 cifre decimali, come posso fare?

    Per ora il campo è di tipo N, quando in inserimento digito un valore tipo 12,50 mi tiene solo 12,5.

    Fatemi sapere.
    Grazie mille.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,311
    Non è un problema di inserimento, in cui il valore dipende dalla precisione del campo, ma di visualizzazione e di formato utilizzato a questo scopo.

    Aggiungi il tuo campo come "persistente" facendo doppio clic sul componente che rappresenta la tua tabella dati (richiamando così il Field Editor) e selezionando "Add all fields"; cerca il campo relativo e imposta la proprietà DisplayFormat del campo tramite l'Object Inspector.

    Puoi trovare ulteriori informazioni su questa proprietà di cui sono dotati tutti i campi (TField) all'interno della Guida in linea di Delphi, assieme ad alcuni esempi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Sei stato chiarissimo, ho sistemato tutto.
    Restando sempre nel discorso ho un altra domanda da farti:
    i valori che inserisco (15 campi) li sommo nel momento in cui li digito e faccio visualizzare il totale in una varibile; la variabile è di tipo double, anche questa perde gli zeri dopo la virgola ma vorrei impostarla come gli altri campi con 2 numeri decimali obbligatori.
    Come posso fare?

  4. #4
    Non si può impostare la variabile.
    Puoi formattare la stringa che rappresenta la variabile con la funzione "formatfloat" e visualizzarla come vuoi.

    Ciao

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,311
    Originariamente inviato da Nikk11
    Non si può impostare la variabile.
    Puoi formattare la stringa che rappresenta la variabile con la funzione "formatfloat" e visualizzarla come vuoi.
    Esatto. Vale lo stesso discorso fatto per i campi.

    Un valore numerico non ha una precisa formattazione, tutt'al più ha una precisione o una rappresentazione, ma il numero di decimali da utilizzare è un problema che riguarda le stringhe e il loro ottenimento dalla conversione di un valore numerico.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Grazie per i consigli!!
    Ho provato così però non va:
    codice:
    Label6.Caption := FormatFloat(FloatToStr(valore1),0.00);
    dove valore 1 è una variabile di tipo double.
    Com'è impostato adesso mi elimina le virgole (ES. 12,50 diventa 125)

    Cosa sto sbagliando?

  7. #7
    Originariamente inviato da pegaso22
    Grazie per i consigli!!
    Ho provato così però non va:
    codice:
    Label6.Caption := FormatFloat(FloatToStr(valore1),0.00);
    dove valore 1 è una variabile di tipo double.
    Com'è impostato adesso mi elimina le virgole (ES. 12,50 diventa 125)

    Cosa sto sbagliando?
    se cerchi formatfloat nell'help di Delphi trovi risposta a tutte le tue domande ... con tanto di esempi !


  8. #8
    Ho visto l'help e gli esempi ma non ho trovato una soluzione funzionante...

  9. #9

  10. #10
    Liberamente copiato dall'help di DELPHI 7
    codice:
    Delphi syntax:
    
    function FormatFloat(const Format: string; Value: Extended): string; overload;
    function FormatFloat(const Format: string; Value: Extended; const FormatSettings: TFormatSettings): string; overload;
    
    C++ syntax:
    
    extern PACKAGE AnsiString __fastcall FormatFloat(const AnsiString Format, Extended Value);
    extern PACKAGE AnsiString __fastcall FormatFloat(const AnsiString Format, Extended Value, const TFormatSettings FormatSettings);
    
    Description
    
    FormatFloat formats the floating-point value given by Value using the format string given by
     Format. The following format specifiers are supported in the format string:
    Se leggi, c'è scritto che nel primo parametro ci va la stringa del formato "0.00"
    e nel secondo ci va il valore!

    quindi quello che serve a te è
    codice:
    Label6.Caption := FormatFloat('0.00',valore1);

    Non mi sembrava così difficile

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.