Round Pi

Hallo!
Wenn ich Pi auf eine Nachkommastelle runden möchte, schaue ich mir die zweite an und treffe dann meine Entscheidung. Mein PC macht bei round(Pi,1) das gleiche und sicherlich ähnlich. Wie muss aber eine mathematische Gleichung lauten, die als Ergebnis einen gerundeten Wert im Taschenrechner (ohne eingestelltem Runden) ausgibt. Zur Vereinfachung und auf mein Problem angepasst auf ganze Zahlen, also im Falle Pi auf 3.

Vielen Dank im Voraus!

Gruß Christian

anbei ein javascript, dass das problem ohne nichtmathematische funktionen loest:

die herleitung:

foo = 3.4;// alternativ mit 3.5 testen
bar = foo;

//bruchteil ermitteln
foo = foo%1;

//ganzzahligen teil ermitteln
bar = bar -foo;

//ergibt 1 wenn groesser 4 sonst 0
foo = ( (foo\*10)/5);
foo = foo- (foo%1)

alert(bar + foo);

und die vereinfachung:

foo = 3.5;
bar = (foo-(foo%1))+ 2\*(foo%1)- (2\*(foo%1))%1;
alert( bar);

ps: ich kann es nciht fassen, dass es einen taschenrechner geben soll, den man mit gleichungen programmieren kann, der aber nciht runden koennen soll…

22/7 ? o.T.
o.T. = ohne Text!

Hi Christian,

einen erstaunlich genauen Wert für pi ergiebt der Bruch 355/113

er ergiebt nämlich 3,1415929204 und weicht damit erst in der 7. Stelle hinter dem Komma vom genauen Wert ab!

Damit ließe sich der Erdumfang auf wenige Mikrometer genau berechnen.

Gandalf

der sich sowieso manchmal wundert, wie wenig die althergebrachten Schätzverfahren von Programmierern genutzt werden

Hallo!

Einfachste Lösung:

RoundedVal=floor( Val+0.5 );
RoundedVal=frac(( Val+0.5 )-Val );

Die erste Version zählt 0.5 zur Ausgangszahl dazu und nimmt dann den Anteil ohne Nachkommastelle (aus 1.7 wird dadurch 2.2, also 2 als Ergebnis, aus 1.2 wird 1.7, also 1 als Ergebnis). Die zweite Version stellt eine Alternative dar, wenn floor( ) nicht zur Verfügung steht und mit frac( ) gearbeitet werden muss (frac bestimmt nur den Nachkommaanteil).

Grüsse Safog

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen Dank mal bis hier her, aber ihr habt da was missverstanden: Pi war nur ein Beispiel weil diese Zahl Irrational ist und somit ich sicher gehen kann das genügend Nachkommastellen zum Experiementieren vorhanden sind. Wurzel zwei wäre genauso gut denkbar.
Eine Zahl 1,264864864 soll gerundet werden. Die von euch aufgezeigten Methoden kenne ich alle und sicherlich wird es viele mehr geben, aber es soll eine Formel aus mathematischen Operaten entstehen, die das Runden übernimmt:
sei diese zu rundende Zahl k.
(k*100)^2-k*abs(k)/5 könnte eine Lösung sein die ich unter mathematisch verstehe. Diese Formel ist natürlich völliger Quatsch, aber ich Suche mit diesem Beitrag nach der richtigen Formel.

Gruß Christian

Hallo, Christian,
ich bin zwar eine mathematische Nichtgröße, aber ich kann suchen und finden.
Hilft Dir diese URL u.U. weiter?
http://support.serv.ch/authoring/javascript_faq/rech…
Grüße
Eckard.

verraetst du uns, welches problem du loesen willst?

und welche operationen stehen nun zur verfuegung? in deinem beispiel war eine abs-funktion drin…

verraetst du uns, welches problem du loesen willst?

Es geht um Kryptologie. Ich möchte meinen Codierungsalgorithmus noch sicherer machen und die Probe zu dem Code geht nur über gerundete Werte. Der PC würde zwar round verstehen, doch bring das mal in Assemblersprache und noch nach zwei Jahren nachvollziehbar. :smile:

und welche operationen stehen nun zur verfuegung? in deinem
beispiel war eine abs-funktion drin…

ich weis nicht wie ich Betragsstriche schreiben darf. Alle Funktionen die in einem Mathebuch stehen bevor es Computerunterstützte Lösungen gab.

Gruß Christian