java怎样精确到小数点后20位

如题所述

第1个回答  推荐于2016-03-02
//不用谢

import java.math.BigDecimal;

public class gog{

public static void main(String[] args) {
System.out.println(div(10,3,20));////10/3的精确到20位

}

public static BigDecimal div(double v1,double v2,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 =new BigDecimal(Double.toString(v1));
BigDecimal b2 =new BigDecimal(Double.toString(v2));
return
b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP);
}

}本回答被提问者和网友采纳
第2个回答  2014-11-01
位数太长了,可以使用long型试试,
第3个回答  2014-11-01
可以用 BigDecimal

java编程中怎么控制小数点后的位数?
\/\/一般控制格式都是通过 DecimalFormat 来控制的import java.text.DecimalFormat;public class ControlBit { public static void main(String[] argu){ double money = 399.74099999999993;DecimalFormat df=new DecimalFormat("#.00");System.out.println(df.format(money));} } ...

JAVA中如何将 e 的值精确到小数点后某一位
可采用BigDecimal转换的方式,而且可以进行四舍五入或四舍五不如的方法。具体看如下的代码:public class Test { public static void main(String args[]){ BigDecimal org = new BigDecimal(2.712147825694);BigDecimal dest = org.setScale(6,BigDecimal.ROUND_HALF_UP);System.out.println(dest.toStr...

java中输出一个小数点后几位数怎么办
比如有一个double类型的数值double_int,要输出小数点后4位的字符串,如下即可:Stringdouble_str=String.format("%.4f",double_int);再次转化为double类型可以这样:doubleresult=Double.valueof(double_str);

java能精确到小数点的后多少位
java中double类型是双精度浮点数,占用8字节(Byte)即64位(bit),其精度是由32个bit的二进制尾数来确定的,因此准确精度是二进制精度而不是十进制精度,通常可以保证十进制小数点后15位有效精度和第16位的部分精度。其实这个不只是java存在,是由计算机二级制架构决定的。高精度浮点计算,最好是先转换...

java float类型默认小数点后几位
在Java中,float和double类型的默认值均为0.0。关于它们的小数点后位数,可以通过特定的方法进行控制。以保留两位小数为例,有三种常见的处理方式:首先,利用java.math.BigDecimal和DecimalFormat类,如这样实现:1. 导入java.math.BigDecimal和DecimalFormat:double x = 23.5455;NumberFormat format1 = new...

java、怎样简便的保留小数点后两位。
1、只要输出结果的时候可以用以下方法:double x1 = 0.026;System.out.println(String.format("%.2f", x1));结果:0.03 2、使用数据转换(4种方法)\/\/方案一:get_double = (double)(Math.round(result_value*100)\/100.0)\/\/方案二:DecimalFormat df = new DecimalFormat("#.##");get_...

java中怎么获取保留小数点后两位,不进行四舍五入,不用截取的方式,我截...
JDK6.0版本前有个方法System.out.printf("%.2f",3.141592)可以保留小数点后两位 而现在则没有了。如下代码你可以参考下:double num=23.1415926;String temp=Double.toString(num);double newNum=Double.parseDouble(temp.substring(0,temp.indexOf('.')+3));先把num转成字符串类型,然后截取,...

java中如何实现将float精确到小数点后两位
方法1:用Math.round计算,这里返回的数字格式的.float price=89.89;int itemNum=3;float totalPrice=price*itemNum;float num=(float)(Math.round(totalPrice*100)\/100);\/\/如果要求精确4位就*10000然后\/10000 方法2:用DecimalFormat 返回的是String格式的.该类对十进制进行全面的封装.像%号,千分位...

...一个java程序要求结果必须四舍五入保留到小数点后7位,应该在程序中...
你可以是用String.format("",Object);其中第一个参数表示格式,%.3f表示浮点数,小数点后面3位(其他格式参考API)第二个参数是你要格式化的内容,传入的是一个Object 在你的代码上面做了点修改,不多,就改了一行:public class MianJi {public static void main(String[] args) {int r = 1;...

java的double型怎么保留小数点后8位而且不失真?
1、String.format("%.8f", 1.098765432)2、new java.text.DecimalFormat("#.00000000").format(nu1.098765432)这两个都是使用四舍五入,不会失真。double( 双精度浮点型)是计算机使用的一种资料型别。比起单精度浮点数(float),double( 双精度浮点数)使用 64 位(8字节) 来储存一个浮点数...

相似回答