btcq.net
当前位置:首页 >> JAvA中怎么把除法精确到小数点后100位 >>

JAvA中怎么把除法精确到小数点后100位

JAVA中如何对double或者float的浮点数进行精度计算,在JAVA中提供了多种参数来实现精度的不同控制方式.具体例子如下: package com.soft4j.utility; import java.math.BigDecimal; /** * 与小数位精度(四舍五入等)相关的一些常用工具方

public static double fix(double val, int fix) { if (val == 0) return val; int p = (int) Math.pow(10, fix); return (double) ((int) (val * p)) / p; }//fix表示保留位数,调用fix((double)314/100,2)

你用double类型的话不可能精确到小数点后100位的

使用bigdecimal方法计算,这是最精确的

方法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 返回的是

java中提供了很多方法可以设置浮点数的精确度,我介绍两种方法:DecimalFormat和BigDecimal.假设你的数为Double value = 1.2365456321;如果用DecimalFormat,则DecimalFormat decimalFormat = new DecimalFormat(".000");value =

(1) float f0=1.239f; java.text.DecimalFormat df = new java.text.DecimalFormat("#0.00");//这里的#0.0是控制后面保留的小数位数 String new_f0 = df.format(f0);//四舍五入 System.err.println(new_f0); (2) double x=6.52341221; String y=Double.toString(x); y=y.substring(0,3); x=Double.parseDouble(y); System.err.println("*******"+x);

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

可以用DecimalFormat 类 public class Pmn{ public static void main(String[] args) throws Exception { DecimalFormat dt=(DecimalFormat) DecimalFormat.getInstance(); //获得格式化类对象 dt.applyPattern("0.00");//设置小数点位数(两位)

2.Math.round(d*100)/100; 3.java.math.BigDecimal(d).setScale(2,BigDecimal.ROUND_HALF_UP); 4.(new java.text.DecimalFormat("#.##")).format(d); 1.利用Math.round()的方法: 两个int型的数相除,结果保留小数点后两位: int a=1188;int b

网站首页 | 网站地图
All rights reserved Powered by www.btcq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com