`
resunly
  • 浏览: 42044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

double类型相除的小数位数保留问题

    博客分类:
  • java
UP 
阅读更多

今天让小数位数的保留问题折磨了半天,自己搞定是搞定,但很不理想,上网查找了一些结合自己的保存起来以便后用:

public static void main(String[] args) {
  //方法一:
  //保留小数位数,并能四舍五入
  DecimalFormat de = new DecimalFormat("0.00");
  System.out.println(de.format(52.83252));
  
  //方法二:
  //最简单的保留两位小数方法,并能四舍五入
  double dou = 0.36854;
  dou = Math.round(dou*100);
  System.out.println(dou/100);
  
  //方法三:
  //BigDecimal --des.setScale()方法里的2,表示保留的小数位数
  //第二个参数为也可为 ROUND_HALF_UP
  //doubleValue() 保证输入的结果为double类型,也可以有intValue()方法
  BigDecimal des = new BigDecimal(0.36584);
  des = des.setScale(2, BigDecimal.ROUND_HALF_EVEN);
  System.out.println(des.doubleValue());
  
  //如果des.setScale()方法里的第二个参数为ROUND_HALF_UP
  des = des.setScale(2, BigDecimal.ROUND_HALF_UP);
  System.out.println(des.intValue());
  
  
  //方法四:
  NumberFormat forma = NumberFormat.getIntegerInstance();
  forma.setMaximumFractionDigits(2);
  System.out.println(forma.format(0.6358));
  
 }

分享到:
评论

相关推荐

    Java中Double除保留后小数位的几种方法(小结)

    Java中Double除保留后小数位的几种方法是指在Java编程语言中,对Double类型数据进行保留小数位的操作。这种操作在实际开发中非常常见,例如在统计成绩、金融计算、科学计算等领域中都需要对Double类型数据进行保留...

    double类型精度丢失;double转换到64位整数

    2. **保留特定小数位**: 如果知道需要保留的小数位数,可以先将`double`乘以相应的10的幂,然后进行整数转换,再除回相同幂的10,但这只能解决特定场景下的问题。 3. **使用高精度库**: 如果需要处理大量的浮点计算...

    关于数据库中保留小数位的问题

    在数据库管理中,保留小数位是一个常见的需求...总的来说,数据库中保留小数位是一个涉及数值类型选择、数值处理函数应用以及精度与效率权衡的复杂问题。理解这些概念和技巧,对于确保数据质量及满足业务需求至关重要。

    程序中两个Double类型相加出现误差的解决办法

    今天在自己做的系统中,发现了一个奇怪的现象:几个Double类型的数据相加,到最后得出的金额比正确数值总是少了几毛钱。以为是程序里的计算方法有问题,可是排查了很... 我们的系统里有保留小数位数为4位,按理是可以

    vb.net三位数相除法

    三位数相除时,如果结果可能包含小数,应使用`Double`类型,否则可能导致数据丢失。 2. **运算符**:VB.NET中的除法运算符主要有两种: - `/`:这是标准的除法运算符,用于实数或双精度数的除法,会返回一个浮点数...

    Java用BigDecimal解决double类型相减时可能存在的误差

    `setDoubleScale(Double d, int scale)`方法用于设定一个`double`值的特定小数位数,使用`setScale()`方法进行四舍五入,并返回新的`double`值。 在`main`方法中,代码演示了如何使用这些`BigDecimal`方法来替代...

    Kotlin 四则运算 (加、减、乘、除)

    整型包括`Int`(32位)和`Long`(64位),而浮点型包括`Float`(单精度)和`Double`(双精度)。在四则运算中,数字默认被视为`Double`类型,除非明确声明为其他类型。 **2. 运算符** Kotlin提供了标准的四则运算符...

    java的用来处理数字方面的逻辑工具类

    * * 两个Double数相除,并保留scale位小数 * * @param v1 * @param v2 * @param scale * @return Double */ public static Double div(Double v1, Double v2, int scale) { } /** * 返回指定Double...

    浙江大学c语言总复习题-基本数据类型和运算 (1).pdf

    - **双精度**(double):64位二进制表示,精度高于float,称为双精度,因为它能表示更多的小数位数。 4. **变量**: - 变量是内存中的一个存储单元,具有名称(标识符)、数据类型和作用域。变量可以分配在栈区...

    Java解惑(中文+书签).pdf

    Java中的`double`类型属于二进制浮点数,它在表示十进制小数时可能会出现精度损失的问题。这是因为某些十进制小数无法用二进制数精确表示,例如`1.1`。当使用`double`类型进行算术计算时,这会导致不可预期的结果。...

    Javase1[参考].pdf

    例如,一个`int`和一个`double`相除,结果将是`double`类型。取模运算符`%`用于求余数,如`a % b`会返回`a`除以`b`的余数。 了解这些基础概念对于进行Java编程至关重要,它们构成了编写任何Java程序的基础。熟悉...

    c语言入门详细笔记(包含指针){原创}

    例如,整数相除的结果会丢弃小数部分,而浮点数相除则保留小数。赋值运算符如`+=`、`-=`等提供了简化的赋值方式。关系运算符(如`>`, `, `==`, `!=`)用于比较两个值,其结果是整数1(表示真)或0(表示假)。逻辑...

    PowerBuilder 函数全包括

    - **n**:保留的小数位数。 **返回值**: - 返回值的数据类型为 Decimal。 - 当函数执行成功时,返回 `x` 四舍五入后的小数点后 `n` 位数值。 - 如果参数 `x` 或 `n` 的值为 NULL,则 `Round()` 函数返回 NULL。 -...

    Java解惑(中文).pdf

    这是由于`double`类型无法精确表示所有的小数,尤其是无法精确表示`1.1`这个值,因此在计算过程中产生了近似值。对于货币等需要精确计算的应用场景,使用`double`类型并不合适。推荐使用整数类型(如`int`或`long`)...

    WIN7计算器

    `XiaoShuDian` 可能会根据计算结果是否有小数来决定显示的小数位数;而 `JiSuan` 可能用于跟踪当前的计算步骤,尤其是在执行连续计算时。 在Windows 7计算器中,有几种不同的计算模式,包括标准型、科学型、程序员...

    Java基础笔记-基础部分

    - 小数:如`double x = 10.0`。 - 科学记数法:如`double x = 2E3`。 **1.2 常量** - **定义**:常量是在程序运行过程中值不会改变的量。 - **命名规则**: - 必须使用`final`关键字修饰。 - 常量名通常使用...

    c语言课件 一天学会

    而double类型占用8个字节,能表示16位有效数字,范围大约是±10^-308到±10^308。 3. 字符型(char):用于存储单个字符,如英文字母、数字或符号。在ASCII编码中,字符型占用1个字节,可以表示0到255的值。 4. 枚举...

    c语言大一小白基础笔记

    * double型:用8个字节存储一个double型数据,可以得到15位有效数字,在C语言中进行浮点数的算数运算时,将float型数据都自动转换为double型然后再运算。 3.2.6 常量的类型 常量的类型可以由其表示形式判定,例如...

    C语言数据类型与表达式习题及答案[归类].pdf

    - 强制类型转换允许将一种类型转换为另一种类型,如`(int)(3.14)`会丢失小数部分。 理解并熟练掌握这些知识点是学习C语言的基础,通过做相关的习题和解答可以帮助巩固这些概念,并提高编程能力。在编程实践中,...

Global site tag (gtag.js) - Google Analytics