AGB  ·  Datenschutz  ·  Impressum  







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

Integer Wert auf 10ner Runden

Ein Thema von snake41300 · begonnen am 10. Apr 2007 · letzter Beitrag vom 10. Apr 2007
Antwort Antwort
snake41300

Registriert seit: 23. Okt 2006
27 Beiträge
 
Delphi 7 Personal
 
#1

Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 16:44
Hi,
Ich habe folgendes Problem:
Ich haben eine Integer Zahl zwischen 0 und ca. 1000 und diese Zahl soll auf glatte 10ner gerundet werden also in etwa so: 23=>20 145 =>150 230=>230 usw...
Villeicht hat ja wer ne Idee.
Gruß Snake
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 16:48
Durch 10, runden, mal 10 ?

Edit: Vll. uts auch die Funktion RoundTo ...
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 17:17
Zitat von jfheins:
Durch 10, runden, mal 10
wenn du damit meinst durch 10 teilen und dann mal 10 genau so hab ichs mir gedacht
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#4

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 17:19
+5 und dann die letzte stelle zu 0 machen!
  Mit Zitat antworten Zitat
snake41300

Registriert seit: 23. Okt 2006
27 Beiträge
 
Delphi 7 Personal
 
#5

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 17:24
Zitat von ibp:
+5 und dann die letzte stelle zu 0 machen!
Das ist ja schonmal eine gute Idee, aber kann mir auch jemand sagen wie ich die letzte Stelle einer integer Zahl auf 0 bringen kann? Dann wäre mein Problem gelöst
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 17:30
Zitat von snake41300:
Zitat von ibp:
+5 und dann die letzte stelle zu 0 machen!
Das ist ja schonmal eine gute Idee, aber kann mir auch jemand sagen wie ich die letzte Stelle einer integer Zahl auf 0 bringen kann?
gerundeteIntegerZahl := ((zahl+5) div 10) * 10; Wenn die zahl negativ ist, musst du 5 abziehen, damit kaufmännisch gerundet wird.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 17:30
Wenn du nicht hunderte Werte hast, kannst du getrost die erste Möglichkeit nutzen, die ist dann schnell genug. Das könnte so aussehen:

Delphi-Quellcode:
function ExtendedRound(Number, RoundTo: Integer): Integer;
begin
  result := Round(Number / RoundTo) * RoundTo;
end;

// Aufruf
ShowMessage(IntToStr(ExtendedRound(135, 10)));
Dies funktioniert übrigens auch mit negativen Werten.
  Mit Zitat antworten Zitat
snake41300

Registriert seit: 23. Okt 2006
27 Beiträge
 
Delphi 7 Personal
 
#8

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 17:52
Danke für eure Hilfe so hatte ich mir das vorgestellt jetzt geht es!
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 18:10
Zitat von snake41300:
...so hatte ich mir das vorgestellt...
Dabei versuchen wir doch immer wieder packende Wendungen und haarsträubende Überraschungen reinzubringen. Mist!
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

Re: Integer Wert auf 10ner Runden

  Alt 10. Apr 2007, 18:22
Zitat von inherited:
... packende Wendungen und haarsträubende Überraschungen reinzubringen.
Kein Problem, kannst du haben.
Round() rundet ja nicht kaufmännisch (also ziffer <= 4: abrunden ziffer >= 5: aufrunden)
sondern wenn die zu rundende Ziffer genau auf 5 steht wird einmal auf- und einmal abgerundet.
Das hängt davon ab, ob die Ziffer davon gerade oder ungerade ist.
ExtendedRound(135, 10) wird zu 140 (aufgerundet)
ExtendedRound(145, 10) wird zu 140 (abgerundet)
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:29 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