java之类BigDecimal

本文深入探讨 Java 中 BigDecimal 类的使用,包括基本数学运算、小数处理和科学计数法表示,通过解决 ACM 1001 题目展示实际应用。同时,提供 Java 代码实现,帮助读者理解如何在复杂数值计算中灵活运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中的类bigdecimal

java.math.bigdecimal

能表示其他普通类型不能表示的数据范围如double就表示不了超过16位的,但是该类可以。今天做到北大的acm的1001题,先是用c++写了,后用java做,觉得java做起来简单,但是自己对java不熟悉。从现在开始好好学习学习java。

该题就用到了java中的bigdecimal。

不能用普通的+,-,*,/对其对象进行运算。而应该用其类中的方法。

bigdecimal add(bigdecimal augend) :加法

bigdecimal subtract(bigdecimal subtrahend) :减法

bigdecimal divide(bigdecimal divisor) :除法

bigdecimal pow(int n) :乘幂

bigdecimal multiply(bigdecimal multiplicand) :乘法

在得到的小数,要对其小数点后面的零进行处理,用到:bigdecimal striptrailingzeros() 返回数值上等于此小数,但从该表示形式移除所有尾部零的 bigdecimal。

对得到的数据用科学计数法就用:string toplainstring() 返回不带指数字段的此 bigdecimal 的字符串表示形式。通俗来讲就是直接显示,不用科学计数法表示。

最后把写的acm1001的题目代码(java)贴在后面,以后记住。

1 import java.io.*;

2 import java.util.*;

3 import java.math.bigdecimal;

4

5 public class main

6 {

7public static void main(string args[])throws exception

8{

9scanner cin=new scanner(system.in);

10while(cin.hasnext())

11{

12bigdecimal r=cin.nextbigdecimal();

13int n=cin.nextint();

14r=r.pow(n).striptrailingzeros();

15string m_string=r.toplainstring();

16if(m_string.charat(0)=='0')

17m_string=m_string.substring(1);

18system.out.println(m_string);

19}

20}

21 }


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值