2016-05-09 8 views
-3

Ich habe eine Liste von Doppelzimmer, und ich brauche jede Nummer zu analysieren und wie folgt vorgehen:lesen Tausendstel Digit und Inrement Hunderterstelle, wenn Nonzero (C++)

1) Tausendstel Prüfziffer. 2) Wenn^ungleich Null, runde die Hundertstelziffer und behalte den Rest der Zahl bei.

Also durch diese gehen:

10,110567 10,110567 bleiben würde, weil die Tausendstel Ziffer Null ist:

10,111567 10,121567

Alternativ werden würde.

+0

Sicher '10.111567' ist abgerundet' 10.11', wenn Sie auf runden, und dann sicher Es sollte "10.12" und nicht "10.121567" sein. Wenn du es noch einmal drehen solltest, sollte es "10.131567" werden? – kfsone

+0

@Dariusz Es ist für eine bestimmte Anwendung. Könntest du bitte nicht einfach abstimmen, sondern mir einfach helfen? – jonnyd42

+0

a) Ich habe nicht runtergestimmt, b) Ich wollte sicherstellen, dass du wirklich meintest, was du geschrieben hast, c) dein Problem schien trivial und ich konnte nicht glauben, dass du das tatsächlich fragst – Dariusz

Antwort

0

Sie sollten genau das tun, was Sie in Frage das Thema geschrieben: lesen Tausendstel Digit und Erhöhungsschritte Hunderterstelle, wenn Nonzero

double val = 13.412412; 
int thousandsDigit = (val*1000)%10; 
if (thousandsDigit != 0) { 
    val+= 0.01; 
}