AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Runden bei FFFixed verhindern.

Ein Thema von Sudrow · begonnen am 23. Okt 2008 · letzter Beitrag vom 26. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Sudrow

Registriert seit: 21. Sep 2008
32 Beiträge
 
#1

Runden bei FFFixed verhindern.

  Alt 23. Okt 2008, 22:11
Guten Abend,
Ich hab ein Problem.
Das ist mein Quelltext:
Delphi-Quellcode:
Note := ((17/3)-(Gesamt/180));
LNote.Caption := floattostrF(Note,ffFixed,1,1);
Wenn ich jetzt Bei Gesamt z.B den Wert 481 nehme kommt eine Zahl um die 2,99..... raus, diese rundet er auf 3,0.

Was ich aber möchte ist das er mir 2,9 anzeigt, das er also genau 1 Kommastelle anzeigt und diese aber nicht rundet, oder wenn dann eben zum besseren. Sodass 2,99 nicht 3,0 sondern 2,90 ist.

Gibts da eine Möglichkeit?

mfg Sudrow
Peter
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#2

Re: Runden bei FFFixed verhindern.

  Alt 24. Okt 2008, 07:43
hi,

ich glaube eine direkte funktion gibt es dafür nicht aber du könntest mal
folgendes ausprobieren:

Delphi-Quellcode:
function abrunden(value:Double):Double ;
begin
  Result := Int(value) + Floor( Frac( value ) *10 ) / 10 ;
end;

procedure ... (Sender: TObject);
var
  ...
begin
  ...
  Note := ((17/3)-(Gesamt/180));
  LNote.Caption := Format('%.2f',[abrunden(Note)]);
end;
kurze erklärung:

Frac(value) = nachkommaanteil deiner note // z.b. 0.99444
Frac( value ) * 10 // 9.9444
Floor(...) = abrunden nach unten auf nächsten integer wert // 9.0
wieder zurück teilen (/10) // 0.9
Int(value) = ganzzahliger Teil // 2


vllt. bringt es dich weiter


cya
  Mit Zitat antworten Zitat
Sudrow

Registriert seit: 21. Sep 2008
32 Beiträge
 
#3

Re: Runden bei FFFixed verhindern.

  Alt 24. Okt 2008, 08:12
Delphi-Quellcode:
function THaupt.abrunden(value:Double):Double ;
begin
  Result := Int(value) + Floor( Frac( value ) *10 ) / 10 ;
end;
das klingt schon mal nicht schlecht, dankeschön.
Nur leider sagt er mir bei Floor das er es nicht kennt, er meldet immer nicht deklarierter Bezeichner.
Was kann ich da machen?

mfg Sudrow
Peter
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#4

Re: Runden bei FFFixed verhindern.

  Alt 24. Okt 2008, 08:13
uses Math ;

cya
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Runden bei FFFixed verhindern.

  Alt 24. Okt 2008, 08:44
Hallo Sudrow,

falls du die Unit Math nicht einbinden möchtest oder kannst:

Note := Int(10 * Note) / 10; Gruß Hawkeye
  Mit Zitat antworten Zitat
Sudrow

Registriert seit: 21. Sep 2008
32 Beiträge
 
#6

Re: Runden bei FFFixed verhindern.

  Alt 24. Okt 2008, 08:49
Perfekt beide funktionieren.

Vielen Dank euch zweien.
Hat grad die uses eingetragn
Aber das andere ist kürzer was meinem großen Quelltext zugute kommt.
Dankeschön.

mfg Sudrow
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Runden bei FFFixed verhindern.

  Alt 24. Okt 2008, 09:06
Zitat von Sudrow:
Aber das andere ist kürzer was meinem großen Quelltext zugute kommt.
Ähm, es macht also einen wesentlichen Unterschied bei 2500 Zeilen Quellcode, ob eine Zeile 20 oder 30 Zeichen lang ist?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.926 Beiträge
 
Delphi 12 Athens
 
#8

Re: Runden bei FFFixed verhindern.

  Alt 24. Okt 2008, 09:48
Brocken Window Theorie?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Sudrow

Registriert seit: 21. Sep 2008
32 Beiträge
 
#9

Re: Runden bei FFFixed verhindern.

  Alt 26. Okt 2008, 21:41
Die Frage wurde zwar eigentlich schon beantwortet, aber zu den angebotenen sachen muss ich doch noch etwas fragen.

Kann ich damit auch erreichen das er die nachkommastelle einfach wegläßt?
Also bei z.B 6,6 schreibt er nur 6, ohne runden und alles.

mfg Sudrow
Peter
<>
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Runden bei FFFixed verhindern.

  Alt 26. Okt 2008, 21:46
Trunc(), Int()
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz