首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在保留原始值的同时将BigDecimal显示为整数

,可以通过BigDecimal的setScale方法来实现。setScale方法用于设置BigDecimal的小数位数,并指定舍入模式。

具体步骤如下:

  1. 首先,将BigDecimal对象实例化,传入原始值作为参数。
  2. 调用setScale方法,传入整数位数和舍入模式作为参数。整数位数为0,表示将BigDecimal显示为整数。
  3. 最后,使用toString方法将BigDecimal转换为字符串形式的整数。

以下是一个示例代码:

代码语言:txt
复制
import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalExample {
    public static void main(String[] args) {
        BigDecimal originalValue = new BigDecimal("123.456789");

        BigDecimal integerValue = originalValue.setScale(0, RoundingMode.DOWN);

        System.out.println("Original Value: " + originalValue);
        System.out.println("Integer Value: " + integerValue);
    }
}

输出结果:

代码语言:txt
复制
Original Value: 123.456789
Integer Value: 123

在这个示例中,我们使用BigDecimal类的setScale方法将原始值保留为整数。setScale方法的第一个参数为整数位数,设置为0表示保留整数部分。第二个参数为舍入模式,这里使用RoundingMode.DOWN表示向下舍入。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)

  • 产品介绍链接地址:https://cloud.tencent.com/product/cvm
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DAX里或0显示减号?这个问题可能困扰不少人!

- 问题 - 近期碰到个很有意思例子,一个度量值,其中判断某个0时,结果用减号“-”表示,不是0时执行相应除法: 但是,明明用条件设置了这里应该显示减号(“-”),但结果却显示...我猜(纯凭经验,没深究,不严谨),这可能是由于DAX中类型自动转换导致,因为“-”是DAX(也是很多其他编程语言)里唯一既作为运算符(减,如3-2)又同时是符号(负,如-1)字符,所以,单独“-...”参与度量计算过程被转换成了类似[-blank()]负数结果,-blank()也就等于0。...我们首先想到方法是给“-”前或后加上空格,但是,这没有用!见下图: 为什么?应该跟这个问题类似:《PP-数据建模:明明删除了重复项,为什么还是说有重复?》...Power Pivot里,却没有UNICHAR这个函数(对于DAX函数适用范围,可以DAX.Guide网站上查到,这是DAX函数用法及案例最佳参考网站哦,拿走不谢!)

3.7K20

大部分Java程序员都会忽略几个问题,你中招没?

= null && a.equals(b)); } 注意: Reference:Java中equals方法造成空指针异常原因及解决方案 每种原始类型都有默认一样,如int默认 0,boolean...默认 false,null 是任何引用类型默认,不严格说是所有 Object 类型默认。...=操作来比较null,但是不能使用其他算法或者逻辑操作。Java中null==null返回true。 不能使用一个null引用类型变量来调用非静态方法,否则会抛出异常 2....BigDecimal 保留几位小数 通过 setScale方法设置保留几位小数以及保留规则。保留规则有挺多种,不需要记,IDEA会提示。...反例 : 比如显示成交总额涨跌情况,即正负 x%,x 基本数据类型,调用 RPC 服务,调用不成功时,返回是默认,页面显示 0%,这是不合理,应该显示成中划线。

46320

大部分Java程序员都会忽略几个问题

= null && a.equals(b)); } 注意: Reference:Java中equals方法造成空指针异常原因及解决方案 每种原始类型都有默认一样,如int默认 0,boolean...默认 false,null 是任何引用类型默认,不严格说是所有 Object 类型默认。...=操作来比较null,但是不能使用其他算法或者逻辑操作。Java中null==null返回true。 不能使用一个null引用类型变量来调用非静态方法,否则会抛出异常 2....BigDecimal 保留几位小数 通过 setScale方法设置保留几位小数以及保留规则。保留规则有挺多种,不需要记,IDEA会提示。...反例 : 比如显示成交总额涨跌情况,即正负 x%,x 基本数据类型,调用 RPC 服务,调用不成功时,返回是默认,页面显示 0%,这是不合理,应该显示成中划线。

55220

java 中 BigDecimal 详解「建议收藏」

只能无限接近于那个 但是,项目中,我们不可能让这种情况出现,特别是金融项目,因为涉及金额计算都必须十分精确,你想想,如果你支付宝账户余额显示193.99999999999998,那是一种怎么样体验...doubleValue() BigDecimal对象中以双精度数返回。...floatValue() BigDecimal对象中以单精度数返回。...longValue() BigDecimal对象中以长整数返回。 intValue() BigDecimal对象中整数返回。...(距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果1.5 ROUND_HALF_EVEN //向(距离)最近一边舍入,除非两边(距离)是相等,如果是这样,如果保留位数是奇数

72720

java 四舍五入保留小数几种方式

2、参数小数点后第一位>5,运算结果参数整数部分绝对+1,符号(即正负)不变。 3、参数小数点后第一位=5,正数运算结果整数部分+1,负数运算结果整数部分。...Math.round   语法:    Math.round(x);   参数:    x 一数值。   解释:    方法。返回对参数x四舍五入后所得整数近似。...结果舍入整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为long 类型。...结果舍入整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为int 类型。...如果参数正无穷大或任何大于等于 Integer.MAX_VALUE ,那么结果等于Integer.MAX_VALUE 。 参数: a - 要舍入整数浮点

2.2K30

Java开发中商业计算请务必使用BigDecimal来进行计算!

它由两部分组成: intVal - 未校正精度整数,类型`BigInteger` Scale - 一个32位整数,表示小数点右边位数 例如,BigDecimal 3.14未校正值314,缩放...BigDecimal之前,此方法double转换为其String表示形式。...:取左边最近正数 RoundingMode.CEILING:取右边最近整数 RoundingMode.HALF_DOWN:五舍六入,负数先取绝对再五舍六入再负数 RoundingMode.HALF_UP...我们来看看`pattern`规则: “0”——表示一位数值,如没有,显示0。如“0000.0000”,整数位或小数位>4,按实际输出,<4整数位前面补0小数位后面补0,凑足4位。...“#”——表示任意位数整数。如没有,则不显示小数点位使用,只表示一位小数,超出部分四舍五入。如:“#”:无小数,小数部分四舍五入。“.#”:整数部分不变,一位小数,四舍五入。

1.4K20

java 中对 BigDecimal 类使用详解

BigDecimal(double) 创建一个具有参数所指定双精度对象。 //不推荐使用 BigDecimal(long) 创建一个具有参数所指定长整数对象。...doubleValue() BigDecimal对象中以双精度数返回。 floatValue() BigDecimal对象中以单精度数返回。...longValue() BigDecimal对象中以长整数返回。 intValue() BigDecimal对象中整数返回。...有人可能认为Java中写入newBigDecimal(0.1)所创建BigDecimal正好等于 0.1(非标度 1,其标度 1),但是它实际上等于0.1000000000000000055511151231257827021181583404541015625...(3) BigDecimal都是不可变(immutable)进行每一步运算时,都会产生一个新对象,所以在做加减乘除运算时千万要保存操作后

1.1K30

利用BigDecimal类巧妙处理Double类型精度丢失

经典问题:浮点数精度丢失 精度丢失问题是在其他计算机语言中也都会出现,float和double类型数据执行二进制浮点运算时候,并没有提供完全精确结果。...5 / 2 = 2 余 1 2 / 2 = 1 余 0 1 / 2 = 0 余 1 // 结果 101 这个算法永远都不会无限循环,整数永远都可以使用二进制数精确表示,但小数呢?...每次小数部分乘2,取出整数部分,如果小数部分为0,就可以停止这个过程。...为了防止以后图片可能会存在显示问题,这里再记录一下: new BigDecimal(double val) 该方法是不可预测,以0.1例,你以为你传了一个double类型0.1,最后会返回一个...说明:equals()方法会比较和精度(1.0和1.00返回结果false),而compareTo()则会忽略精度。

2.1K10

花了几个小时总结了一些容易出错 Java 知识点

= null && a.equals(b)); } 每种原始类型都有默认一样,如int默认 0,boolean 默认 false,null 是任何引用类型默认,不严格说是所有...= 操作来比较null,但是不能使用其他算法或者逻辑操作。Java中null == null返回true。 不能使用一个null引用类型变量来调用非静态方法,否则会抛出异常 1.2....BigDecimal 保留几位小数 通过 setScale方法设置保留几位小数以及保留规则。保留规则有挺多种,不需要记,IDEA会提示。...《阿里巴巴Java开发手册》对这部分BigDecimal描述 1.3.5. 总结 BigDecimal 主要用来操作(大)浮点数,BigInteger 主要用来操作大整数(超过 long 类型)。...反例 : 比如显示成交总额涨跌情况,即正负 x%,x 基本数据类型,调用 RPC 服务,调用不成功时,返回是默认,页面显示 0%,这是不合理,应该显示成中划线。

51811

刷题小问题合计——持续更新

BigDecimal 与浮点类型转换精度损失问题 5.3 bigdecimal 去除末尾多余 0 和取消科学计数法显示 六、输入输出 6.1 Scanner.next() 和 Scanner.nextLine...根据统计学,此舍入模式可以统计上将累加错误减到最小,类似Java中浮点数舍入策略。...1. 2幂次方 判断一个数能否写出2个以上连续和,观察后发现(不符合有0,1,2,4,8 …),只有N2幂次方时,不能写成连续整数形式。...解决方法一 使用BigDecimal以String(scanner.next())参数构造函数:public BigDecimal(String val) 来替代。...5.3 bigdecimal 去除末尾多余 0 和取消科学计数法显示 stripTrailingZeros() trip:除去;trailing:后续,尾部 toPlainString()

69710

【小家java】Java数值运算 精度丢失原因分析,提供保证精度MathHelper工具类

返回类型保证精度BigDecimal类型,根据业务需要请转换为自己需要类型。...,十进制里浮点数能正确显示。...十进制小数二进制表示: 整数部分:除以2,取出余数,商继续除以2,直到得到0为止,取出余数逆序 小数部分:乘以2,然后取出整数部分,剩下小数部分继续乘以2,然后再取整数部分,一直取到小数部分为零为止...如果永远不为零,则按要求保留足够位数小数,最后一位做0舍1入。取出整数顺序排列。...同理,任意一个整数都是可以使用二进制精确表示,所以只要不超过精度总可以精确表示,但是小数往往不能使用二进制精确表示。 JDK提供Math类 Math类Java类库提供给我们处理一些数学运算

1.8K30

BigDecimal

另一个重要功能就是它支持精确定义小数点位置和标度(即小数位数)。BigDecimal中定义了两个整数:精度和标度。精度表示数字中位数,标度表示小数点右边位数。...当分子和分母都是整数时,正常情况下除法不一定会得到一个整数,会得到一个类似于“圆整”。使用BigDecimal可以避免这种情况。...这种不可变性确保了进行多线程编程时线程安全文法,同时也使得BigDecimal类型非常适用于缓存处理方案。...(b, 2, RoundingMode.HALF_UP); 在上面的代码中,我们使用divide()方法a除以b,同时结果四舍五入并保留两位小数,结果保存在result变量中。...同时,由于它不可变性和线程安全性,它也很适用于缓存处理方案。 进行高精度计算时,我们强烈建议使用BigDecimal类型,并尽可能地避免使用double和float类型。

26920

【刨根问底】BigDecimal 案例和部分源码分析

A BigDecimal由任意精度整数未缩放 和32位整数级别组成 。如果零或正数,则刻度是小数点右侧位数。如果 是负数,则数字非标定乘以10,以达到等级否定幂。...因此,BigDecimal 所代表BigDecimal(unscaledValue × 10-scale) 。...10scale次幂(32 位整数标度) private final int scale; // BigDecimal未scale,BigInteger是 // 一个任意长度整数整数非标度...这个老版本中有使用,新版本没有使用了 this(in,offset,len,MathContext.UNLIMITED); } 继续调用重载方法: /** * BigDecimal...因为它不能精确得到相应; String 构造方法是完全可预知: 写入 new BigDecimal("0.1") 创建一个 BigDecimal,它正好等于预期0.1; 因此,通常建议优先使用

1.1K20

_使用大数类型例子(时间显示

一、题目描述小蓝要和朋友合作开发一个时间显示网站。 服务器上,朋友已经获取了当前时间,用一个整数表示,从1970年1月1日00:00:00到当前时刻经过毫秒数。...现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。 给定一个用整数表示时间,请将这个时间对应时分秒输出。...二、输入描述输入一行包含一个整数,表示时间。三、输出描述输出时分秒表示的当前时间,格式形如HH;MM;SS,其中HH表示时,0到23,MM表示分,0到59,ss表示秒,0到59。...seconds = scanner.nextBigDecimal(); //取得输入整数与一天总秒数取最大 flag = seconds.max...arg){ //首先获得一天小时数是多少,中间参数0是保留多少位小数,RoundingMode.DOWN意思是向零方向舍入 String hours = String.format

11800

Double为什么会丢失精度

我们小时候玩计算器喜欢疯狂累加或者累减,到最后计算器就会显示下图。这个就是科学计数法显示结果 那图中真实是 -4.86*10^11=-486000000000。...当到达一定自动开始使用科学计数法,并保留相关精度有效数字,所以结果是个近似数,并且指数整数十进制中小数有些是无法完整用二进制表示。所以只能用有限位来表示,从而在存储时可能就会有误差。...由于double不能精确表示0.3(任何有限长度二进制),因此用double构造函数传递不完全等于0.3。使用bigdecimal时,必须使用String字符串参数构造方法来创建它。...double问题是从小数点转换到二进制丢失精度,二进制丢失精度。BigDecimal处理时候把十进制小数扩大N倍让它在整数上进行计算,并保留相应精度信息。...(3) BigDecimal都是不可变(immutable)进行每一步运算时,都会产生一个新对象,所以在做加减乘除运算时千万要保存操作后

2.3K30

java面试官:Double为什么会丢失精度?解决方法?答出给1万月薪

我们小时候玩计算器喜欢疯狂累加或者累减,到最后计算器就会显示下图。这个就是科学计数法显示结果 那图中真实是 -4.86*10^11=-486000000000。...当到达一定自动开始使用科学计数法,并保留相关精度有效数字,所以结果是个近似数,并且指数整数十进制中小数有些是无法完整用二进制表示。所以只能用有限位来表示,从而在存储时可能就会有误差。...由于double不能精确表示0.3(任何有限长度二进制),因此用double构造函数传递不完全等于0.3。使用bigdecimal时,必须使用String字符串参数构造方法来创建它。...double问题是从小数点转换到二进制丢失精度,二进制丢失精度。BigDecimal处理时候把十进制小数扩大N倍让它在整数上进行计算,并保留相应精度信息。...(3) BigDecimal都是不可变(immutable)进行每一步运算时,都会产生一个新对象,所以在做加减乘除运算时千万要保存操作后

19.6K30

使用大数类型例子(时间显示

一、题目描述 小蓝要和朋友合作开发一个时间显示网站。 服务器上,朋友已经获取了当前时间,用一个整数表示,从1970年1月1日00:00:00到当前时刻经过毫秒数。...现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。 给定一个用整数表示时间,请将这个时间对应时分秒输出。...二、输入描述 输入一行包含一个整数,表示时间。 三、输出描述 输出时分秒表示的当前时间,格式形如HH;MM;SS,其中HH表示时,0到23,MM表示分,0到59,ss表示秒,0到59。...()) { //输入一个整数 seconds = scanner.nextBigDecimal(); //取得输入整数与一天总秒数取最大...arg){ //首先获得一天小时数是多少,中间参数0是保留多少位小数,RoundingMode.DOWN意思是向零方向舍入 String hours = String.format

64940
领券