一点一滴学java(BigDecimal类)

这篇博客主要说明再用BigDecimal类的两个对象相加时如何除去末尾的零。。。想了好久都没解决。。。最后是将运算结果转换为字符串,然后用字符串去做的。。。详细的请看代码。。。。



import java.math.*;
import java.util.*;
public class Main {
    public static void main(String args[]){
        Scanner cin=new Scanner(System.in);
        String s;
        int n,len;
        BigDecimal a,b;
        //while(cin.hasNext()){
            n=cin.nextInt();
            while(n>0){
                a=cin.nextBigDecimal();
                b=cin.nextBigDecimal();
                s=a.add(b).toString();//字符串
                for(len=s.length()-1;len>=0;--len){
                    if(s.charAt(len)!='0')break;
                }
                if(s.charAt(len)=='.')s=s.substring(0, len+2);
                else s=s.substring(0, len+1);
                System.out.println(s);
                --n;
        }
        //}
    }
}
/**************************************************************
    Problem: 1137
    User: 3011216016
    Language: Java
    Result: Wrong Answer
****************************************************************/


Java BigDecimal是用于处理高精度的十进制数值的。它提供了各种数运算方法,例如加法、减法、乘法和除法,可以对BigDecimal对象进行这些运算操作。 例如,使用add()方法可以对两个BigDecimal对象进行相加操作;使用subtract()方法可以对两个BigDecimal对象进行相减操作;使用multiply()方法可以对两个BigDecimal对象进行相乘操作;使用divide()方法可以对两个BigDecimal对象进行相除操作。 此外,BigDecimal还提供了截断和四舍五入的功能。可以使用setScale()方法来设置保留的小数位数,并且可以指定采用的四舍五入模式。例如,通过设置setScale(4, RoundingMode.HALF_UP)来保留BigDecimal对象的小数位数为4,并且按照四舍五入的方式进行截断。 在使用BigDecimal时,通常会使用其构造方法来创建BigDecimal对象。其中一种常见的构造方法是将double型的数值转换为字符串,然后传递给构造方法,例如new BigDecimal("0.01")。 综上所述,Java BigDecimal可以用于进行高精度的十进制数值计算,并且可以实现截断和四舍五入的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [java中的BigDecimal型](https://blog.csdn.net/a1782519342/article/details/124727558)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值