Java-在位置n处获得小数

时间:2014-03-09 17:05:02

标签: java floating-point formatting

从浮点数中获取位置n的小数的最佳方法是什么(通过从除小数之外的数字中删除所有内容)?

它应该像这样工作:

getDecimal(3.654987, 4)  =>  returns 0.0009
getDecimal(3.654987, 2)  =>  returns 0.05

3 个答案:

答案 0 :(得分:1)

Float f = new Float("0.123456789");
System.out.println(f.toString().charAt(5));

打印4.尝试这个方向。

答案 1 :(得分:1)

这应该适合你:

public static double getDecimal(double num, int n) {
     return ((int) (num * Math.pow(10, (double) n)) % 10) * Math.pow(10, (double) -n); 
}

答案 2 :(得分:1)

假设该位置将始终为正整数(> 0):

float input = 3.654987f;
int pos = 4;
String op = String.valueOf(input).replaceAll("\\d*\\.\\d{"+(pos-1)+"}(\\d)\\d+",
             "0." + new String(new char[pos-1]).replace("\0", "0") + "$1");
System.out.println(op);