Kaufmännisches Runden in C auf Mikrocontroller?

OP #2433081
Lesenswert?

Hauptsächlich für Mikrocontroller suche ich eine Lösung um kaufmännisch 
zu runden (nach DIN 1333), speziell für 32-Bit Integers.
Gibt es dafür empfehlenswerte Makros oder Funktionen?

Mein Ansatz wäre erstmal ein Makro für positive (ganze) Zahlen und
( (a)/(b) +  ( ( (a) % (b) >= (float)(b)/2.0 ) ? 1 : 0 ) )
und danaben ein Makro das die Beträge einsetzt, also positive Zahlen 
sicherstellt sowie das Vorzeichen bestimmt und nachher wieder anzufügt.
Um den Float-Cast kommt man wohl nicht herum im Fall b=1, und um 
Überläufe zu vermeiden.
Gast #2433324
Lesenswert?

Hallo,

will man wirklich vollständig "kaufmännisch Rechnen" dann ist die einzig 
wahre Lösung eine BCD-Arithmetik (Binary Coded Decimal), denn mit Runden 
allein ist es nicht getan!!!
Es gibt hierfür teils fertige Bibliotheken.


Gruss Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren