最初使用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!
相关推荐
本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及避免科学记数法等问题。 #### 四舍五入保留两位小数 四舍五入是数学中的一个基本概念,指的是当一个数的小数部分小于等于0.5时,将其...
- `setScale(2, BigDecimal.ROUND_HALF_UP)` 表示将该`BigDecimal`对象的小数点后保留2位,并采用四舍五入的方式处理第三位及以后的数字。 - 最终得到的`double f1`即为保留两位小数的结果。 #### 方法二:使用`...
本文将深入探讨Java中常用的数学类以及如何进行精确的浮点数运算,包括加减乘除、四舍五入以及百分数转换。 首先,我们来看`BigDecimal`类。它是一个任意精度的十进制数,能够提供精确的浮点数运算。这是因为Java中...
4. 四舍五入和格式化:为了使结果显示得更加友好,可能需要用到NumberFormat或DecimalFormat类进行数值格式化,例如控制小数位数、添加逗号分隔符等。 三、设计与实现 1. 布局管理:计算器的界面布局通常采用...
接着将结果转换为`BigDecimal`对象,并使用`setScale()`方法设置保留两位小数,并指定四舍五入规则`BigDecimal.ROUND_HALF_UP`。 #### 2. 使用`DecimalFormat`进行格式化输出 除了`BigDecimal`之外,还可以使用`...
总结一下,Java中计算百分比值涉及的关键知识点包括: 1. 数值类型的转换:将整型转换为浮点型以进行精确计算。 2. 除法运算:计算部分值与总数的比例。 3. `DecimalFormat`类:用于格式化输出,确保百分比值的精度...
通过调用`setScale`方法可以方便地设置小数位数,并指定四舍五入的方式。 ```java double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue...
通过有效的插值技术、特殊函数的精确计算以及合理地运用线性拟合,我们可以对复杂的数据进行分析,从而得出有价值的结论。对于编程人员来说,熟悉并掌握这些方法和工具是至关重要的,这将极大地提高他们在解决实际...
与传统的基于TF-IDF或余弦相似度的方法相比,SimHash在处理长文本时能更好地保持精确度,并且计算复杂度较低。 在Java环境中实现SimHash,你需要理解并应用位操作、哈希函数和分词库。`src`目录可能包含了SimHash...
在这里,`RoundingMode.HALF_UP`用于设置四舍五入模式。 总结来说,`NumberFormat`和`java.math`包的`BigInteger`、`BigDecimal`类是Java中处理格式化输出和高精度计算的关键工具。它们提供了丰富的功能,确保了在...
本文将深入探讨招标代理费的计算方法,以及如何使用“招标代理计算器.exe”工具进行精确的费用估算。 一、招标代理费概述 招标代理费是指招标代理机构在为招标人提供专业服务,包括但不限于编制招标文件、组织招标...
注意,为了确保结果为整数,代码中对面积和体积进行了四舍五入处理。 4. 英尺与米的转换: `FeetToMeter`类将英尺转换为米,使用了转换比例1英尺等于0.305米。`nextInt()`方法用于读取整数输入,代表英尺数。 5. ...
在Java后端,你需要计算任务的完成度并将其转换为百分比。例如,如果任务总共需要处理100个步骤,当前完成了30个,那么进度就是30%。 这两种实现方式都需要前后端的协作。前端负责展示和更新进度,后端则提供进度...
在Java编程语言中,处理大数(大数据量的整数)加法时,通常会使用`java.math....在需要精确计算且性能不是首要考虑的情况下,它是理想的选择。在性能敏感的场景下,可以结合其他数据结构和优化策略来平衡精度和效率。
java的数字运算,偶尔会出现精度的问题,以下阐述的 java的... java为了让float或者double类型能够精确的计算,提供了BigDecimal类。 示例如下: public static BigDecimal getBigDecimal(Doubleval){ //把d
1. **使用BigDecimal进行四舍五入** `BigDecimal` 类提供了一个精确的浮点数运算,避免了浮点数计算中的精度问题。以下代码展示了如何使用`setScale`方法保留两位小数: ```java double f = 111231.5585; ...
在气象学和工程领域,了解湿度是非常重要的,特别是在空调、制冷、气候研究以及工业过程控制等方面。本篇文章将深入探讨如何通过温度...无论是设计空调系统还是进行气候研究,理解并能正确计算绝对湿度都是至关重要的。
- **百分比表示**:在模式结尾添加`%`字符,可以将数字视为百分比,即乘以100并添加`%`符号。 #### 示例代码解析 以下代码展示了`DecimalFormat`的多种使用场景,包括基本的数字格式化、百分比表示以及科学计数法...
计算器的基本功能包括加、减、乘、除以及可能的其他高级运算,如求平方根、百分比计算等。这些运算的实现需要精确的数学算法和错误处理机制,以确保在各种输入条件下都能得到正确的结果。 源码分析: 1. **类结构*...
首先,Java计算器的核心功能通常包括基本运算(如加、减、乘、除)、科学计算(如对数、指数、三角函数)、括号处理、百分比计算等。这些功能的实现主要依赖于数学运算符的优先级规则和表达式解析。开发者会创建一个...