Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: xinyiman - Settembre 20, 2013, 04:31:45 pm

Titolo: Azzerare decimali e centesimi
Inserito da: xinyiman - Settembre 20, 2013, 04:31:45 pm
ciao ragazzi, qualcuno mi sa dire come si possono azzerare i decimali e come i centesimi in una variabile di tipo float?

Grazie mille
Titolo: Re:Azzerare decimali e centesimi
Inserito da: nomorelogic - Settembre 20, 2013, 04:45:01 pm
ci sono le funzioni round e trunc
tutte e due ritornano un intero ma la prima arrotonda mentre la seconda tronca

se non vuoi passare per un intero puoi usare frac, ad esempio:
Codice: [Seleziona]
var
   n: real;
begin
   n := 123.456;
   n -= frac(n); // ora vale 123
   ...
end
Titolo: Re:Azzerare decimali e centesimi
Inserito da: xinyiman - Settembre 20, 2013, 04:46:44 pm
ci sono le funzioni round e trunc
tutte e due ritornano un intero ma la prima arrotonda mentre la seconda tronca

se non vuoi passare per un intero puoi usare frac, ad esempio:
Codice: [Seleziona]
var
   n: real;
begin
   n := 123.456;
   n -= frac(n); // ora vale 123
   ...
end

Ok per il decimale (non ricordavo la sintassi), ma se voglio azzerare il centesimo tenendo invariato il decimo?
Titolo: Re:Azzerare decimali e centesimi
Inserito da: nomorelogic - Settembre 20, 2013, 04:51:11 pm
farei qualcosa tipo

Codice: [Seleziona]
var
   n: real;
begin
   n := 123.456;
   n -= frac(n*10)/10; // ora vale 123.4
   ...
end
Titolo: Re:Azzerare decimali e centesimi
Inserito da: xinyiman - Settembre 20, 2013, 04:55:51 pm
farei qualcosa tipo

Codice: [Seleziona]
var
   n: real;
begin
   n := 123.456;
   n -= frac(n*10)/10; // ora vale 123.4
   ...
end

Semplice e funzionale, grazie nomore. Oggi non riesco ad accendere il cervello...troppo stanco
Titolo: Re:Azzerare decimali e centesimi
Inserito da: nomorelogic - Settembre 20, 2013, 05:01:32 pm
è venerdì, bisogna tener duro ;)