从浮点数中获取位置n的小数的最佳方法是什么(通过从除小数之外的数字中删除所有内容)?
它应该像这样工作:
getDecimal(3.654987, 4) => returns 0.0009
getDecimal(3.654987, 2) => returns 0.05
答案 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);