今天做功能 要多经纬度做小数点后6位的限制
一开始 是用小数点截取法 来弄, 感觉 代码有点多,
后来网上百度了下, 还真有类是的
一下是针对 double 数据的 格式化,
public static double formatDouble1(double d) {
return (double)Math.round(d*100)/100;
}
public static double formatDouble2(double d) {
// 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);
return bg.doubleValue();
}
public static String formatDouble3(double d) {
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留两位小数
nf.setMaximumFractionDigits(2);
// 如果不需要四舍五入,可以使用RoundingMode.DOWN
nf.setRoundingMode(RoundingMode.UP);
return nf.format(d);
}
public static String formatDouble4(double d) {
DecimalFormat df = new DecimalFormat("#.00");
return df.format(d);
}
public static String formatDouble5(double d) {
return String.format("%.2f", d);
}
但是我的是String ,我把我的String 转成double 又报错了,
可能我的案例不适合上面的代码
我想我的小数点后面位数多 , 那就用 float
float scale = Float.parseFloat(buildInfo.getLat());
DecimalFormat fnum = new DecimalFormat("##0.000000");
String dd=fnum.format(scale);
System.out.println(dd);
ok 没问题,
先要几位就在后面配几个零, 真是方便
感谢 网上的参考
上面的double 参考:http://www.cnblogs.com/nayitian/p/3214178.html
下面的float 参考:http://www.cnblogs.com/langtianya/p/3986277.html