bigdecimal怎么设置(BigDecimal 型变量该怎么赋值)

:暂无数据 2026-09-23 20:50:12 :1

bigdecimal怎么设置(BigDecimal 型变量该怎么赋值)

各位老铁们,大家好,今天由我来为大家分享bigdecimal怎么设置,以及BigDecimal 型变量该怎么赋值的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

BigDecimal 型变量该怎么赋值

BigDecimal AAA = new BigDecimal("X")
X为你设置的值
如果要四则运算
AAA= AAA.add(new BigDecimal("y"));
y为你想要加的值,此时AAA = X+y;
“add”可以换成别的方法,比如减乘除,你自己百度吧

BigDecimal对象的值如何用字符串进行重新设置

如果要重新设置,你完全可以在new一个
为什么一定要这个对象呢,这个应该是个看问题角度的问题
即使是valueOf,也是返回给你一个新对象,而不是你原来那个
//-------------------
int类型是基本类型,和BigDecimal类型是两种概念,正因为这样,所以不可以再次赋值,这样也就失去了封装的意义了。如果你觉得不方便,可以自己写一个类,实现一下这个方法,但本质依然会是返回一个新对象
//3-------------------
这不是一样嘛,你遍历你要加的元素,然后用add方法
//4-------------------
这有和不同
BigDecimal sum = ....
for(){
sum = sum.add(a);
}
最后不是就是你要结果嘛

怎么设置浮点类型的精度

您好,很高兴为您解答。
一般对double类型进行运算时,做好对结果进行处理,然后拿这个值去做其他事情。 下面我们就用代码来说明一下如何对浮点数进行精度计算,以double为例。
/*
* Copyright reserved 2010 by AllensLab
* @project AllensLab
* @date Feb 22, 2010
*/
package cn.allen.tools;

import java.math.BigDecimal;

/**
* RoundTool
* @author allen
* @time 10:05:40 AM Feb 22, 2010
*/
public class RoundTools {
/**
* 对double数据进行取精度.
* 《p》
* For example:
* double value = 100.345678;
* double ret = round(value,4,BigDecimal.ROUND_HALF_UP);
* ret为100.3457
*
* @param value
* double数据.
* @param scale
* 精度位数(保留的小数位数).
* @param roundingMode
* 精度取值方式.
* @return 精度计算后的数据.
*/
public static double round(double value, int scale, int roundingMode) {
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(scale, roundingMode);
double d = bd.doubleValue();
bd = null;
return d;
}

public static BigDecimal roundAgain(double value, int scale, int roundingMode) {
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(scale, roundingMode);
return bd;
}

/* 用于加、减、乘和除的方法给 BigDecimal 值提供了算术运算。由于 BigDecimal 对象是不可变的,这些方法中的每一个都会产生新的 BigDecimal 对象。
* 因为创建对象的开销, BigDecimal 不适合于大量的数学计算,但设计它的目的是用来精确地表示小数。 */

/**
* Addition
* @param number1
* @param number2
* @return
* @author allen
* @date 10:42:47 AM Feb 22, 2010
*/
public static double add(double number1, double number2, int newScale, int roundingMode) {
return BigDecimal.valueOf(number1).add(BigDecimal.valueOf(number2)).setScale(newScale, roundingMode).doubleValue();
}

public static double add(int newScale, int roundingMode, double number1, double numbers) {
BigDecimal bd = new BigDecimal(number1);
for (double number : numbers) {
bd = bd.add(BigDecimal.valueOf(number).setScale(newScale, roundingMode));
}
return bd.doubleValue();
}

/**
* Subtraction
* @param number1
* @param number2
* @return
* @author allen
* @date 10:45:36 AM Feb 22, 2010
*/
public static double subtract(double number1, double number2, int newScale, int roundingMode) {
return BigDecimal.valueOf(number1).subtract(BigDecimal.valueOf(number2)).setScale(newScale, roundingMode).doubleValue();
}

/**
* Multiplication
* @param number1
* @param number2
* @return
* @author allen
* @date 10:46:23 AM Feb 22, 2010
*/
public static double multiply(double number1, double number2, int newScale, int roundingMode) {
return BigDecimal.valueOf(number1).multiply(BigDecimal.valueOf(number2)).setScale(newScale, roundingMode).doubleValue();

}

/**
* Division
* 尽量采用财务常用的四舍六入五取偶 即ROUND_HALF_EVEN
* @param number1
* @param number2
* @return
* @author allen
* @date 10:47:12 AM Feb 22, 2010
*/
public static double divide(double number1, double number2, int scale, int roundingMode) {
return BigDecimal.valueOf(number1).divide(BigDecimal.valueOf(number2), scale, roundingMode).doubleValue();
}

/**
* 测试用的main方法.
*
* @param args
* 运行参数.
*/
public static void main(String args) {
//下面都以保留2位小数为例
System.out.println(add(12.341, 12.3449, 2, BigDecimal.ROUND_HALF_EVEN));
System.out.println(add(2, BigDecimal.ROUND_HALF_UP, 12.346, 12.3449, 12.3401, 12.345));
System.out.println(subtract(12.3449, 12.341, 2, BigDecimal.ROUND_HALF_EVEN));
System.out.println(multiply(12.3449, 0.01, 2, BigDecimal.ROUND_HALF_UP));
System.out.println(divide(11.341, 12.346, 2, BigDecimal.ROUND_HALF_EVEN));
//ROUND_UP
//只要第2位后面存在大于0的小数,则第2位就+1
System.out.println("-- ROUND_UP -- 只要第2位后面存在大于0的小数,则第2位就+1 --");
System.out.println(round(12.3401, 2, BigDecimal.ROUND_UP));//12.35
System.out.println(round(-12.3401, 2, BigDecimal.ROUND_UP));//-12.35
//ROUND_DOWN
//与ROUND_UP相反
//直接舍弃第2位后面的所有小数
System.out.println("-- ROUND_DOWN -- 直接舍弃第2位后面的所有小数 --");
System.out.println(round(12.349, 2, BigDecimal.ROUND_DOWN));//12.34
System.out.println(round(-12.349, 2, BigDecimal.ROUND_DOWN));//-12.34
//ROUND_CEILING
//如果数字》0 则和ROUND_UP作用一样
//如果数字《0 则和ROUND_DOWN作用一样
System.out.println("-- OUND_CEILING -- 如果数字》0 则和ROUND_UP作用一样 如果数字《0 则和ROUND_DOWN作用一样 --");
System.out.println(round(12.3401, 2, BigDecimal.ROUND_CEILING));//12.35
System.out.println(round(-12.349, 2, BigDecimal.ROUND_CEILING));//-12.34
//ROUND_FLOOR
//如果数字》0 则和ROUND_DOWN作用一样
//如果数字《0 则和ROUND_UP作用一样
System.out.println("-- ROUND_FLOOR -- 如果数字》0 则和ROUND_DOWN作用一样 如果数字《0 则和ROUND_UP作用一样 --");
System.out.println(round(12.349, 2, BigDecimal.ROUND_FLOOR));//12.34
System.out.println(round(-12.3401, 2, BigDecimal.ROUND_FLOOR));//-12.35
//ROUND_HALF_UP
//如果第3位数字》=5,则第2位数字+1
//备注:只看第3位数字的值,不会考虑第3位之后的小数的
System.out.println("-- ROUND_HALF_UP -- 如果第3位数字》=5,则第2位数字+1 --");
System.out.println(round(12.345, 2, BigDecimal.ROUND_HALF_UP));//12.35
System.out.println(round(12.3449, 2, BigDecimal.ROUND_HALF_UP));//12.34
System.out.println(round(-12.345, 2, BigDecimal.ROUND_HALF_UP));//-12.35
System.out.println(round(-12.3449, 2, BigDecimal.ROUND_HALF_UP));//-12.34
//ROUND_HALF_DOWN
//如果第3位数字》=5,则做ROUND_UP
//如果第3位数字《5,则做ROUND_DOWN
System.out.println("-- ROUND_HALF_DOWN -- 如果第3位数字》=5,则做ROUND_UP,如果第3位数字《5,则做ROUND_DOWN --");
System.out.println(round(12.345, 2, BigDecimal.ROUND_HALF_DOWN));//12.35
System.out.println(round(12.3449, 2, BigDecimal.ROUND_HALF_DOWN));//12.34
System.out.println(round(-12.345, 2, BigDecimal.ROUND_HALF_DOWN));//-12.35
System.out.println(round(-12.3449, 2, BigDecimal.ROUND_HALF_DOWN));//-12.34
//ROUND_HALF_EVEN
//如果第3位是偶数,则做ROUND_HALF_DOWN
//如果第3位是奇数,则做ROUND_HALF_UP
System.out.println("-- ROUND_HALF_EVEN -- 如果第3位是偶数,则做ROUND_HALF_DOWN,如果第3位是奇数, 则做ROUND_HALF_UP --");
System.out.println(round(12.346, 2, BigDecimal.ROUND_HALF_EVEN));//12.35
System.out.println(round(12.345, 2, BigDecimal.ROUND_HALF_EVEN));//12.35
}
}
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!

关于bigdecimal怎么设置到此分享完毕,希望能帮助到您。

bigdecimal怎么设置(BigDecimal 型变量该怎么赋值)

本文编辑:admin

本文相关文章:


win10系统java环境变量设置(win10怎么配置java环境变量path)

win10系统java环境变量设置(win10怎么配置java环境变量path)

今天给各位分享win10怎么配置java环境变量path的知识,其中也会对win10怎么配置java环境变量path进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月27日 22:10

printf输出多个字符(只定义一个变量,如何用printf输出多个字符 比如ABC)

printf输出多个字符(只定义一个变量,如何用printf输出多个字符 比如ABC)

今天给各位分享只定义一个变量,如何用printf输出多个字符 比如ABC的知识,其中也会对只定义一个变量,如何用printf输出多个字符 比如ABC进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年8月8日 21:10

更多文章:


withdrawal(withdrawal是什么意思)

withdrawal(withdrawal是什么意思)

今天给各位分享withdrawal是什么意思的知识,其中也会对withdrawal是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 07:00

根据流程图怎么编写程序(用c语言根据流程图写程序)

根据流程图怎么编写程序(用c语言根据流程图写程序)

大家好,今天小编来为大家解答以下的问题,关于根据流程图怎么编写程序,用c语言根据流程图写程序这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 06:00

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

大家好,关于在from子句中可以出现很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何在from 子句中嵌套查询下面的语句在access中出错!的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望

2026年10月11日 05:20

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

其实countif函数统计个数怎么用的问题并不复杂,但是又很多的朋友都不太了解countif函数怎么用 详解Excel中countif函数的使用方法,因此呢,今天小编就来为大家分享countif函数统计个数怎么用的一些知识,希望可以帮助到大

2026年10月11日 03:30

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

本篇文章给大家谈谈正则匹配数字之前的字符,以及正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问

2026年10月11日 03:00

register语言学(register语言学)

register语言学(register语言学)

“register语言学”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看register语言学(register语言学)!

2026年10月11日 01:40

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

“系统架构设计师可以直接考吗”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)!

2026年10月11日 01:00

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

大家好,如果您还对orlnsertbootmediinselected不太了解,没有关系,今天就由本站为大家分享orlnsertbootmediinselected的知识,包括我电脑开机显示这个是什么意思or insert boot med

2026年10月10日 23:00

display的用法(display是什么意思 详解display的含义和用法)

display的用法(display是什么意思 详解display的含义和用法)

大家好,如果您还对display的用法不太了解,没有关系,今天就由本站为大家分享display的用法的知识,包括display是什么意思 详解display的含义和用法的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月10日 22:00

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

大家好,今天小编来为大家解答以下的问题,关于html全部居中代码,怎么让网页居中显示,html如何让网页居中这个很多人还不知道,现在让我们一起来看看吧!

2026年10月10日 21:10

最近更新

withdrawal(withdrawal是什么意思)
2026-10-11 07:00:01 浏览:0
热门文章

标签列表