I andre språk kan du f.eks gjør noe liknende:
x = round(float,i), der x er avrundet resultat og 1 er antall desimaler.
Til alt overmål så bruker Delphi feil avrundingsmetode. Mitt formål er mer
vitenskapelig og jeg trenger standard avrunding.
Har noen litt lys å kaste over denne saken?
Roger
FloatToStrF
--
Regards
Torjei Kvinen
Leste litt for fort.
Det enkleste er nok å multiplisere, avrunde og dividere.
2 desimaler:
x = round(float*100) / 100;
3 desimaler:
x = round(float*1000) / 1000;
--
Regards
Torjei Kvinen
Ja så enkelt kan det gjøres.
Takk
Roger
Multiplisering er betydelig raskere enn dividering.
2 desimaler:
x = round(float*100) * 0.01;
3 desimaler:
x = round(float*1000) * 0.001;
--
Regards
Torjei Kvinen
Jeg dumpet litt sent inn i denne tråden, men hvorfor ikke bruke Delphi
funksjonen RoundTo? Den gjør det du etterlyser, bare med den forskjellen
at du setter inn den 10-potensen som tallet skal avrundes fra istedenfor
for antallet desimaler:
x = RoundTo(float, exp10) der exp10 kan være enten et negativt eller
positivt tall mellom -37 og +37, og er således mye mere anvendelig enn
f.eks. x = (float, digits).
RoundTo(1234567, 3) 1234000
RoundTo(1.234, -2) 1.23
RoundTo(1.235, -2) 1.24
RoundTo anvender standard Banker's avrunding, men om du har spesielle
behov i ditt vitenskapelige arbeid så kan du styre avrundingsmetoden ved
hjelp av SetRoundMode funksjonen. Du finner allt om dette i Delphi Help.
Med hilsen Egil