# float wert auf eine Stelle nach dem Komma



## mistirios (20. Februar 2008)

Hi,

ich hab ein float wert z.B 1.69 und möchte den in 1.6 darstellen. Quasi soll die 9 nur abgeschnitten und nicht aufgerundet werden Gibt es in Java eine elegante Lösung, wie man das meistern kann? Ausser mit substring usw..

gruss
mistirios


----------



## Thomas Darimont (20. Februar 2008)

Hallo,

schau mal hier:

```
/**
 * 
 */
package de.tutorials;

/**
 * @author Thomas.Darimont
 * 
 */
public class TruncateExample{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println(truncate(1.69, 1));

	}

	private static double truncate(double value, int n) {
		double tenToTheN = Math.pow(10, n);
		return value > 0 
					? Math.floor(value * tenToTheN) / tenToTheN : 
				      Math.ceil(value * tenToTheN) / tenToTheN;
	}

}
```

Gruß Tom


----------



## mistirios (20. Februar 2008)

Nice. THX!


----------



## zeja (20. Februar 2008)

Wenn du den Wert nur darstellen willst gehts auch so:

```
float theFloat = 20.5789f;

final NumberFormat numberFormat = NumberFormat.getInstance(Locale.GERMAN);
numberFormat.setMinimumFractionDigits(1);
numberFormat.setMaximumFractionDigits(1);

System.out.println(numberFormat.format(theFloat));
```

Vorteil ist, dass der String direkt für die angegebene Sprache formatiert wird. Also , für deutsche Darstellung und ein . für die englische etc. Ohne Angabe der Locale erhält man eine Formatierungsinstanz für die Systemsprache.

Zum damit weiterrechnen halt Toms Version


----------

