java double 类型 怎样截取小数点后4位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java double 类型 怎样截取小数点后4位相关的知识,希望对你有一定的参考价值。

比如 365.93547843 我要截取小数点后4位 是365.9354 不要四舍五入的那种 各位大神有什么简洁的办法吗?

double f = 1107781.3985;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
保留两位小数
---------------------------------------------------------------

java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");
df.format(float param);
参考着用吧
判断几位小数只有你自己写方法判断了,先找小数点,再判断就行了
参考技术A 我说个原理你自己做吧,就是把那个数乘以10000并强制转换为int,再用一个double 类型的变量赋值为这个int/10000, 就可以了。本回答被提问者采纳 参考技术B String numStr = String.valueOf(2222.12345);
String strNew = numStr.substring(numStr.indexOf(".") + 1,numStr.indexOf(".") + 5);
System.out.println(strNew);
转成String类型的截取字符串,如果有需要可以再转回去追问

字符串比较麻烦 math中有没有能直接截取的方法呢?

参考技术C double a=3.1415926;
String temp=Double.toString(a);
int start=temp.indexOf(".");
System.out.println(temp.substring(start+1,start+5));
你可以参考下
参考技术D BigDecimal bg = new BigDecimal(365.93547843);
double f1 = bg.setScale(4, BigDecimal.ROUND_DOWN).doubleValue();
System.out.println(f1);

话说double 是保留多少位小数.

参考技术A 你是指计算机吗?不同语言的double类型的精度不同,通常小数点后六七位没问题

以上是关于java double 类型 怎样截取小数点后4位的主要内容,如果未能解决你的问题,请参考以下文章

java double保留小数点的零的问题

java的计算保留N位小数点问题

java中double类型数组保留小数点后位数问题!!!!!

long类型截取后几位

C#中怎么对double型取两位小数。

java 保留小数点4位,不足时用0补足