Java中小数保留问题】的更多相关文章

方式一: 四舍五入   double   f   =   111231.5585;   BigDecimal   b   =   new   BigDecimal(f);   double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();   保留两位小数   --------------------------------------------------------------- 方式二: Java.te…
Java中四舍五入保留两位小数 方法一 四舍五入 double f = 3.15; long res = Math.round(f); #结果 res = 3 保留两位小数 double f = 3.15; float res =(float) Math.round(f*100)/100; #结果 res = 3.15 注意: 这里用浮点类型,如果换成了整形long,那么就是缩小了数据类型,无法出现小数情况 方法二 double f = 111231.5585; BigDecimal b = n…
一. 计算机的小数计算一定范围内精确,超过范围只能取近似值: 计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值. java中各类型的精度范围参见:http://blog.csdn.net/longshenlmj/article/details/47616481 编程时注意: doulbe类型的数,不能用等号判定是否相等(或者是一定范围内可以).因为两次同样的计算(除法)结果可能出现小数部分不同.甚至极端的时候,初始化两个小数时,都可能不相等(用数值和字…
代码如下:主要是利用java中写好的DecimalFormat类进行设置(#,0,%) import java.text.DecimalFormat; import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main(String []args){ double num=21.4555; long n=453217964; System.out.println(new Dec…
package com.swift; import java.util.Scanner; public class PurchaseTaxDecimalsTwo { public static void main(String[] args) { Scanner scan=new Scanner(System.in);//扫描工作台输入 double purchaseAmount=scan.nextDouble();//输入数值赋值 购买额变量 System.out.println(purcha…
最近做个小实验,其中一部分要求将表单提交的数据转换为double,这个功能其实很简单直接一句Double.parseDouble(request.getParameter("chinese").trim())就可以实现,但因为是统计成绩,所以需要保留小数点后两位,所以各种百度发现了很多解决方法,这里特意总结下,万一以后又用上了呢? 返回double型的 1.能四舍五入 double d = 114.145; d = (double) Math.round(d * 100) / 100;…
1.能四舍五入 double d = 114.145; d = (double) Math.round(d * 100) / 100; System.out.println(d); 2. BigDecimal.ROUND_HALF_UP表示四舍五入,BigDecimal.ROUND_HALF_DOWN也是五舍六入,BigDecimal.ROUND_UP表示进位处理(就是直接加1),BigDecimal.ROUND_DOWN表示直接去掉尾数. double d = 114.145; BigDeci…
1.引言 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合.但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦. 2.BigDecimal简介 BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成.如果为零或正数…
(转载自玄影池扁舟) 做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结: java中double类型变量保留小数问题大体分两种情况: (一):小数点后面位数过长,四舍五入保留指定位数: 可以用以下代码实现: public class TestDemo { public static void main(String[] args) {     double a=15.32743859;     double b=Math.round(a*100…