import java.text.NumberFormat;
class B {
static String percent(double p1, double p2) {
String str;
double p3 = p1 / p2;
NumberFormat nf = NumberFormat.getPercentInstance();
nf.setMinimumFractionDigits(2);
str = nf.format(p3);
return str;
}
}
public class Test {
public static void main(String args[]) {
System.out.println("test1: " + B.percent(1, 3));
System.out.println("test2: " + B.percent(1, 4));
}
}
java实现精确的"四舍五入"
import java.math.BigDecimal;
public class Test {
private static final int DEF_DIV_SCALE = 10;
private Test() {
}
/**
* 提供精确的加法运算。
*
* @param v1
* 被加数
* @param v2
* 加数
* @return 两个参数的和
*/
public static double add(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精确的减法运算。
*
* @param v1
* 被减数
* @param v2
* 减数
* @return 两个参数的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精确的乘法运算。
*
* @param v1
* 被乘数
* @param v2
* 乘数
* @return 两个参数的积
*/
public static double mul(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。
*
* @param v1
* 被除数
* @param v2
* 除数
* @return 两个参数的商
*/
public static double div(double v1, double v2) {
return div(v1, v2, DEF_DIV_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。
*
* @param v1
* 被除数
* @param v2
* 除数
* @param scale
* 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1, double v2, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理。
*
* @param v
* 需要四舍五入的数字
* @param scale
* 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
分享到:
相关推荐
在IT行业中,百分比计算是常见的任务,尤其是在编程语言如Java中。本篇文章将深入探讨如何使用Java来实现百分比的计算,同时结合提供的`PercentTool.java`源码,我们将一起解析并理解其中的关键知识点。 首先,让...
以“后台(子网格和百分比计算)调查选项所占百分比”为例,这可能是一个在线调查系统,后台需要处理各个调查选项的选票数,计算每个选项在所有投票中的占比,并可能将其结果显示在一个带有子网格的可视化界面上。...
本文将详细介绍如何利用Java中的`java.text.DecimalFormat`和`java.text.NumberFormat`类来处理小数点、百分比等格式的数值。 #### 一、`java.text.DecimalFormat`类 `DecimalFormat`是`NumberFormat`的一个子类,...
**问题背景**:在Java中使用`double`或`float`类型进行计算时,可能会出现非预期的结果,这是由于浮点数的存储方式导致的精度损失问题。 **解决方案**: 1. **使用`BigDecimal`**:对于需要高精度计算的场景,推荐...
总结一下,Java中计算百分比值涉及的关键知识点包括: 1. 数值类型的转换:将整型转换为浮点型以进行精确计算。 2. 除法运算:计算部分值与总数的比例。 3. `DecimalFormat`类:用于格式化输出,确保百分比值的精度...
Java作为一种广泛使用的编程语言,同样提供了多种方法来实现流量控制。本篇文章将深入探讨Java如何实现流量控制,并结合具体实例来阐述相关知识点。 首先,我们要理解流量控制的基本原理。在TCP(传输控制协议)中...
输入sub 和 total 计算百分比的工具类,非常简单粗暴。。。。。。。。。。
该项目的主要目标是复制Windows操作系统自带的计算器应用程序的功能,包括基本的加减乘除、百分比计算、平方根、立方根、阶乘等。通过这个项目,开发者可以学习到如何在Java中创建图形用户界面(GUI)以及如何处理...
- 这个项目的计算游戏可能包括数学问题,如加减乘除、平方根、百分比计算等,旨在锻炼用户的计算能力和逻辑思维。 - 游戏可能包含多种难度级别,以适应不同用户的需求。 3. **排行榜功能**: - 排行榜是记录用户...
在Java编程中,有时我们需要在控制台上显示任务的进度,比如下载、上传或者计算等操作。这可以通过创建一个百分比进度条来实现,使用户能够直观地了解程序执行的进度。本文将详细介绍如何在Java控制台上实现一个简单...
本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及避免科学记数法等问题。 #### 四舍五入保留两位小数 四舍五入是数学中的一个基本概念,指的是当一个数的小数部分小于等于0.5时,将其...
4. **数学运算**:计算个人所得税涉及到加减乘除和百分比运算。Java提供了丰富的数学运算符,如`+`, `-`, `*`, `/` 和 `%`,以及`Math`类中的方法,如`Math.pow()`用于求幂,`Math.round()`用于四舍五入。 5. **...
import java.text.NumberFormat; public class TeachYou { public static void main(String[] args) { //这里的数后面加“D”是表明它是Double类型,否则相除的话取整,无法正常使用 double percent = 50.5D / ...
需要注意的是,这个值是瞬时的,如果需要获取一段时间内的平均CPU使用率,需要进行多次采样并计算平均值。 接下来,我们谈谈如何获取内存信息。Java提供`MemoryMXBean`和`MemoryPoolMXBean`接口来获取内存使用情况...
在JSP(JavaServer Pages)页面中处理百分比表示是一个常见的需求,尤其是在展示数据分析结果时。根据提供的文件信息,我们可以提炼出几个关键的知识点:如何在JSP中正确计算并显示百分比、如何使用`BigDecimal`来...
Java 根据比例概率生成随机数 概率随机数是指根据事先设定的概率分布生成随机数的方法。在 Java 中,可以使用 Math.random() 方法生成随机数,然后根据概率分布判断返回的数字。 在给定的代码中,作者定义了一个 ...
SimHash是一种用于文本相似度计算的算法,它在大数据领域,尤其是搜索引擎和推荐系统中有着广泛应用。SimHash的原理是将一个长文本映射为一个短的哈希值,使得相似的文本拥有接近的哈希值。这种方法可以快速判断两段...
在“java写的计算器(功能完整)”这个项目中,我们可以推测这个计算器实现了一系列常见的计算功能,例如: 1. 基本运算:包括加法(+)、减法(-)、乘法(*)和除法(/)。 2. 操作符优先级:计算器可能支持正确的...