2010-09-14 11 views
6

ich habe einen Wert Integer:Wie kann ich Integer-Wert in Dezimalwert umwandeln?

Integer value = 56472201; 

Wenn der Wert positiv oder negativ sein könnte.

Wenn ich den Wert durch 1000000 dividiere, möchte ich dieses Ergebnis in der Form 56.472201, aber stattdessen gibt es mir nur den Quotienten. Wie kann ich sowohl die Quotienten- als auch die Restwerte erhalten?

+2

Welche Sprache sind Sie in der Arbeit? – sje397

+0

Wofür wird das Ergebnis verwendet? Möchten Sie es nur anzeigen oder möchten Sie andere Berechnungen durchführen (und mit welcher Genauigkeit)? – barjak

Antwort

6

Guss es tun, es zu schwimmen und dann:

int i = 56472201; 

float j = ((float) i)/1000000.0 

Edit: Aufgrund Präzision (in Ihrem Fall erforderlich), doppelt verwenden. Auch als von Konrad Rudolph, keine Notwendigkeit für explizites Casting hingewiesen:

double j = i/1000000.0; 
+2

Genau genommen ist diese Besetzung überflüssig, wenn Sie trotzdem durch einen 'float' dividieren (oder in Ihrem Fall' double' für fast alle Sprachen). –

+0

Guter Punkt, ich bin nur ein unsicher/paranoid Programmierer (Angst vor Strtok!) – lalli

+0

Vielen Dank Guyes Es funktioniert mit @Konrad Rudolph @lalli und @Guffa Danke für die Lösungen – jimmy

0

Sie haben den Wert in einen Floating-Point-Typen zuerst zu konvertieren, andernfalls erhalten Sie eine Integer-Division tun.

Beispiel in C#:

int value = 56472201; 
double decimalValue = (double)value/1000000.0; 

(Die Besetzung ist tatsächlich nicht in diesem Code benötigt wird, wie durch eine Gleitkommazahl Dividieren den Wert übereinstimmen gegossen, aber es ist klarer die Besetzung in die zu schreiben, Code als das ist, was tatsächlich passiert.)

1

Wenn Sie ein int durch ein Doppel teilen, werden Sie mit einem doppelten Ergebnis verlassen, wie durch diesen Komponententest veranschaulicht.

@Test 
public void testIntToDouble() throws Exception { 
    final int x = 56472201; 
    Assert.assertEquals(56.472201, x/1e6d); 
} 

1e6d ist 1 * 10^6 dargestellt als Doppel

Verwandte Themen