`

Java 精确四舍五入 并计算百分比

阅读更多

最初使用java.text.DecimalFormat;的方法总是不能精确四舍五入代码如下

 

private static DecimalFormat df = new DecimalFormat("##.00");

    //换算百分比
    private double toScale(double v) {
        double temp = v / sum;
        double v1 = Double.parseDouble(df.format((v / this.sum * 100)));
        return v1;
    }

 但这总方式换算0.3125 无法精确进行进位得到的结果是0.312 应该是0.313

 

后来改为java.math.BigDecimal;并手动截取需要进位的数字进行判断是否采取四舍五入完美解决

 

Double[] d = new Double[4];
        d[0] = 0.078125;
        d[1] = 0.3125;
        d[2] = 0.5703125;
        d[3] = 0.0390625;
 
        for (Double c : d) {
            BigDecimal a = new BigDecimal(c);
            String s = a.setScale(4, 1).toString();
            System.out.print("四舍五前" + s + "      ");
            Integer lastNum = Integer.valueOf(s.substring(s.length() - 1, s.length()));          //截取最后一位判断是否四舍五入
            System.out.print("截取需要进位数字" + lastNum + "      ");
            float v;
            if (lastNum >= 5) {
                v = Float.parseFloat(a.setScale(3, 2).toString());      //setScale前面的参数代表从小数点后的第几位换算 后面2就代表强制进位
                System.out.println("四舍五入后:" + v * 100);
 
                System.out.println("");
            } else {
                v = Float.parseFloat(a.setScale(3, 1).toString());       //这里后面1代表着不进位直接去除掉后面多余的余数
                System.out.println("四舍五入后:" + v * 100);
            }
            System.out.println("----------------------------------------------------------------");
        }

 

Have Fun!

分享到:
评论
1 楼 浮梦 2014-12-14  
[u][i][b]
[flash=200,200][url][img][img][img][img][img][img][list]
[*]
[/list][/img][/img][/img][/img][/img][/img][/url][/flash]
[/b][/i][/u]

相关推荐

    java保留两位小数问题

    本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及避免科学记数法等问题。 #### 四舍五入保留两位小数 四舍五入是数学中的一个基本概念,指的是当一个数的小数部分小于等于0.5时,将其...

    Java保留两位小数方法大全

    - `setScale(2, BigDecimal.ROUND_HALF_UP)` 表示将该`BigDecimal`对象的小数点后保留2位,并采用四舍五入的方式处理第三位及以后的数字。 - 最终得到的`double f1`即为保留两位小数的结果。 #### 方法二:使用`...

    Java中使用的常用数学类

    本文将深入探讨Java中常用的数学类以及如何进行精确的浮点数运算,包括加减乘除、四舍五入以及百分数转换。 首先,我们来看`BigDecimal`类。它是一个任意精度的十进制数,能够提供精确的浮点数运算。这是因为Java中...

    JAVA版的WINDOWS计算器

    4. 四舍五入和格式化:为了使结果显示得更加友好,可能需要用到NumberFormat或DecimalFormat类进行数值格式化,例如控制小数位数、添加逗号分隔符等。 三、设计与实现 1. 布局管理:计算器的界面布局通常采用...

    jsp中百分比表示方法

    接着将结果转换为`BigDecimal`对象,并使用`setScale()`方法设置保留两位小数,并指定四舍五入规则`BigDecimal.ROUND_HALF_UP`。 #### 2. 使用`DecimalFormat`进行格式化输出 除了`BigDecimal`之外,还可以使用`...

    java计算百分比值的方法

    总结一下,Java中计算百分比值涉及的关键知识点包括: 1. 数值类型的转换:将整型转换为浮点型以进行精确计算。 2. 除法运算:计算部分值与总数的比例。 3. `DecimalFormat`类:用于格式化输出,确保百分比值的精度...

    Java中限制小数位数问题

    通过调用`setScale`方法可以方便地设置小数位数,并指定四舍五入的方式。 ```java double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue...

    Numerical 数值计算

    通过有效的插值技术、特殊函数的精确计算以及合理地运用线性拟合,我们可以对复杂的数据进行分析,从而得出有价值的结论。对于编程人员来说,熟悉并掌握这些方法和工具是至关重要的,这将极大地提高他们在解决实际...

    SimHash-java实现及海明距离

    与传统的基于TF-IDF或余弦相似度的方法相比,SimHash在处理长文本时能更好地保持精确度,并且计算复杂度较低。 在Java环境中实现SimHash,你需要理解并应用位操作、哈希函数和分词库。`src`目录可能包含了SimHash...

    JAVA格式输出,JAVA格式输出

    在这里,`RoundingMode.HALF_UP`用于设置四舍五入模式。 总结来说,`NumberFormat`和`java.math`包的`BigInteger`、`BigDecimal`类是Java中处理格式化输出和高精度计算的关键工具。它们提供了丰富的功能,确保了在...

    用于计算招标代理费计算

    本文将深入探讨招标代理费的计算方法,以及如何使用“招标代理计算器.exe”工具进行精确的费用估算。 一、招标代理费概述 招标代理费是指招标代理机构在为招标人提供专业服务,包括但不限于编制招标文件、组织招标...

    java代码1

    注意,为了确保结果为整数,代码中对面积和体积进行了四舍五入处理。 4. 英尺与米的转换: `FeetToMeter`类将英尺转换为米,使用了转换比例1英尺等于0.305米。`nextInt()`方法用于读取整数输入,代表英尺数。 5. ...

    进度条的两种实现(有百分比和无百分比).zip

    在Java后端,你需要计算任务的完成度并将其转换为百分比。例如,如果任务总共需要处理100个步骤,当前完成了30个,那么进度就是30%。 这两种实现方式都需要前后端的协作。前端负责展示和更新进度,后端则提供进度...

    java实现大数加法(BigDecimal)的实例代码

    在Java编程语言中,处理大数(大数据量的整数)加法时,通常会使用`java.math....在需要精确计算且性能不是首要考虑的情况下,它是理想的选择。在性能敏感的场景下,可以结合其他数据结构和优化策略来平衡精度和效率。

    Java的数字精确计算问题-BigDecimal

    java的数字运算,偶尔会出现精度的问题,以下阐述的 java的...  java为了让float或者double类型能够精确的计算,提供了BigDecimal类。  示例如下: public static BigDecimal getBigDecimal(Doubleval){ //把d

    java保留小数的四种实现方法

    1. **使用BigDecimal进行四舍五入** `BigDecimal` 类提供了一个精确的浮点数运算,避免了浮点数计算中的精度问题。以下代码展示了如何使用`setScale`方法保留两位小数: ```java double f = 111231.5585; ...

    通过温度和相对湿度计算绝对湿度公式

    在气象学和工程领域,了解湿度是非常重要的,特别是在空调、制冷、气候研究以及工业过程控制等方面。本篇文章将深入探讨如何通过温度...无论是设计空调系统还是进行气候研究,理解并能正确计算绝对湿度都是至关重要的。

    电子教材:《Java语言程序设计-类》pdf版

    - **百分比表示**:在模式结尾添加`%`字符,可以将数字视为百分比,即乘以100并添加`%`符号。 #### 示例代码解析 以下代码展示了`DecimalFormat`的多种使用场景,包括基本的数字格式化、百分比表示以及科学计数法...

    Java手机计算器源码.rar

    计算器的基本功能包括加、减、乘、除以及可能的其他高级运算,如求平方根、百分比计算等。这些运算的实现需要精确的数学算法和错误处理机制,以确保在各种输入条件下都能得到正确的结果。 源码分析: 1. **类结构*...

    java做的计算器,很好很强大

    首先,Java计算器的核心功能通常包括基本运算(如加、减、乘、除)、科学计算(如对数、指数、三角函数)、括号处理、百分比计算等。这些功能的实现主要依赖于数学运算符的优先级规则和表达式解析。开发者会创建一个...

Global site tag (gtag.js) - Google Analytics