Double 判断小数位数

Double Float类型 判断小数位数存在的问题:

  1. Double Float 类型在 数值超过1千万直接转换为字符串 会采用 “科学计数法”

    所以采用将Double转为字符串再转为BigDecimal 再转为字符串的方法可以获取原来的形式

所以获取小数位数的方法为:

public int checkIsDoublePointTwo(Double param) {
    if (param == null) {
      return 0;
    }
    BigDecimal bd = new BigDecimal(String.valueOf(param));
    String[] ss = bd.toString().split("\\.");
    if (ss.length <= 1){
      return 0;
    }
    return ss[1].length();
  }

原文地址:http://blog.51cto.com/12332955/2350526

时间: 2024-11-14 04:02:11

Double 判断小数位数的相关文章

java如何获取一个double的小数位数

前言 看标题是不是觉得这是一个很简单的问题,我一开始也是这么认为的,但是实际情况下,在各种情况下我们都进行了测试,发现很多实际情况是无法不尽如人意的. 方法分析 当前能想到的比较容易有下面几种 1.直接使用double处理 2.将double转换成String进行处理 方法一:直接对double进行处理,进行计算通过计算后的结果进行取模操作获取小数位数,如下: public static int getNumberDecimalDigits(double number) { if (number

JS判断数字、中文、小数位数

1.JS判断数字 ①var value=$("#test").val(); if(!isNaN(value)){ alert("是数字"); }else{ alert("不是数字"); } ②function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ var nubmer = document.getElement

double四舍五入,商品金额大小写转换,设置货币的小数位数跟格式输出,进制转化

1:计算double值四舍五入的方法 对小数数值进行四舍五入,首先应该确认保留小数位, 如果数值的小数精度大于保留小数位,那么开始四舍五入计算.四舍五入的方法非常简单,在所有要丢失精度的小数位中加5,如果大于10则向前进位,最后计算出四舍五入的结果. /// <summary>计算double值四舍五入的方法 /// /// </summary> /// <param name="dbl">进行四舍五入的数值</param> /// &l

c++中double类型控制小数位数

有时,我们需要输出确定小数位数的double,可以先引入如下头文件: #include <iomanip> 然后通过下列方式输出: double zzz = 8.66666; cout << fixed << setprecision(2) << zzz << endl; 或者: if ((aid % (int(allTime / deltaT) / files)) == 0) { cout << fixed << set

Java学习-047-数值格式化及小数位数四舍五入

此小工具类主要用于数值四舍五入.数值格式化输出,很简单,若想深入研究,敬请自行查阅 BigDecimal 或 DecimalFormat 的 API,BigDecimal.setScale(位数,四舍五入法)中四舍五入法有如下 7 种: 1. ROUND_UP:远离零方向舍入.向绝对值最大的方向舍入,只要舍弃位非0即进位. 2. ROUND_DOWN:趋向零方向舍入.向绝对值最小的方向输入,所有的位都要舍弃,不存在进位情况. 3. ROUND_CEILING:向正无穷方向舍入.向正最大方向靠拢.

javascript小数相减出现一长串的小数位数

我们要修改网页某个数据的显示格式,需要两步操作: 1.在JS中通过$('.class1 .class2 li:eq(2) span.value').text().trim();类似的语句获取到数据内容. 2.将数据修改成需要的格式.(eg:data=10  ==>  9+1) 如果我们拿到的data值是整数,那么没问题,事情会进展的很顺利,跟预期的结果一样. 但是如果带小数的话,问题就来了. 这是为什么呢? 答:这个和数据结构有关系,整数型自动转换成正型计算,小数型直接转成double型计算,这

javascript小数相减会出现一长串的小数位数的原因

javascript小数相减会出现一长串的小数位数的原因 <script> var a='38.8'; var b='6.8'; alert(parseFloat(a)-parseFloat(b)); var a=134.22; var b=6; alert(a*b); </script> 以上代码为什么产生一长串小数位出来,虽然比较精确,可没必要呀. 这个和数据结构有关系,整数型自动转换成正型计算,小数型直接转成double型计算.这是在内存中运算的时候必须这样,你该知道计算机只

【基础练习】【小数位数】小玉家的电费

题目来自 洛谷P1422 月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢.请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少. 题目很简单,但是做了才知道原来我不会写流输出控制小数位数= =果然书到用时方恨少事非经过不知难. 这里引用一份来自本站xidian13071185老

C# 保留小数位数的方法

?  前言 本文主要介绍 C# 中实现小数位数的保留,完成对小数位数四舍五入的几种方法. 1.   使用 Math.Round() 方法 说明: 1)   其实使用 Math.Round() 方法,是根据国际标准(五舍六入)的方式进行取舍的. 2)   进1的情况有两种:1)保留小数位后面第1位大于等于6:2)保留小数位后面第1位等于5,则第2位必须大于0. double double1_1 = Math.Round(1.545, 0);            //2.0 double doub