
int a = 1574444;
String aS = StringvalueOf(a);
char[] asC = aStoCharArray();
for(int i=0;i<asClength;i++){
Systemoutprintln(asC[i]);
}
打印出来的就是每一位数字
decimal在java中的用BigDecimal表示的。
BigDecimal:不可变的、任意精度的有符号十进制数。
BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。
如果为零或正数,则标度是小数点后的位数。
如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。
因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。
BigDecimal 类提供以下 *** 作:算术、标度 *** 作、舍入、比较、哈希算法和格式转换。
不管是不是用JAVA,其实方法都一样,利用数组比如说长度为一千的数字,可以这个 int[] number = new int[1000];相加的思路是,首先两个数组的长度必须是一致,位数不同的话,前面补0,内存有点浪费,但是计算起来比较方便。然后让它们从0到最高位,每位进行相加并保存相应的位置上。最后一步是从0开始判断有没有大于10的数字,如果有就向前面进位(前一个加1,当前位减10),这样就可以。如果是相减,其实思路还是一样的,每位先相减,再判断是否有小于0的,如果有则向前面一位借1(前一位减1,当前位加10)如果是相乘,和上面一样,不过要注意的是进位的时候,不止进一位,比如56,就要向前进3位了(前一位加3,当前位减30)除就比较麻烦点,要涉及到精确度问题,得看实际需要 输出就更容易了,直接for循环数组 特别要注意的是,如果最高位有进位的时候,这个是比较容易出错的地方 思路在上面,如果实现不了请留言
类BankAccount
public class BankAccount {
private String m_sName;
private double m_dBalance;
private double m_dInterestRate;
public BankAccount(){}//无参数的构造函数
public BankAccount(String m_sName,double m_dBalance,double m_dInterestRate){
thism_sName=m_sName;
thism_dBalance=m_dBalance;
thism_dInterestRate=m_dInterestRate;
}
public double getBalance() {//获取当前存款
return m_dBalance;
}
public double getInterestRate() {//获取当前利率
return m_dInterestRate;
}
public void setInterestRate(double interestRate) {//设置利率
m_dInterestRate = interestRate;
Systemoutprintln("当前利率更改为"+interestRate);
}
public void srintAccountMeg(){//打印当前信息
Systemoutprintln("账号名:"+thism_sName);
Systemoutprintln("存款余额:"+thism_dBalance);
Systemoutprintln("当前利率:"+thism_dInterestRate);
}
public void saveMoney(double money){//存款
thism_dBalance=thism_dBalance+money;
Systemoutprintln("存入"+money);
Systemoutprintln("当前余额"+thism_dBalance);
}
public void getMoney(double money){//取款
if(thism_dBalance>=money){
thism_dBalance=thism_dBalance-money;
Systemoutprintln("取出"+money);
Systemoutprintln("当前余额"+thism_dBalance);
}else{
Systemoutprintln("余额不足");
}
}
public double caculateInterest(int days){//计算多少天后的总存款
int year =days/365;
for(int i=1;i<=year;i++){
thism_dBalance=thism_dBalance+thism_dBalancethism_dInterestRate;
}
return thism_dBalance;
}
}
另一个类SimpleAccount
import javamathBigDecimal;
public class SimpleAccount {
public static void main(String[] args) {
BankAccount p1 = new BankAccount("张三",1000,003);
p1srintAccountMeg();//打印当前信息
p1saveMoney(3000);//存3000
p1srintAccountMeg();//打印当前信息
p1getMoney(500);
p1srintAccountMeg();//打印当前信息
int year=10;
double totalMoney = p1caculateInterest(year365);
BigDecimal bd1= new BigDecimal(totalMoney);//这边的BigDecimal 是为了保留存款小数点后2位
BigDecimal totalMoney4=bd1setScale(2,BigDecimalROUND_HALF_UP);
Systemoutprintln("修改利率前--"+year+"年后的存款:"+totalMoney4);
p1setInterestRate(03);
double totalMoney2 = p1caculateInterest(year365);
BigDecimal bd2= new BigDecimal(totalMoney2);
BigDecimal totalMoney3=bd2setScale(2,BigDecimalROUND_HALF_UP);
Systemoutprintln("修改利率后--"+year+"年后的存款:"+totalMoney3);
}
}
以上就是关于Java中怎么获取一个多位数每一位的数字全部的内容,包括:Java中怎么获取一个多位数每一位的数字、decimal对应java什么类型、java中如何对较大的数字进行计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)