Java中怎么获取一个多位数每一位的数字

Java中怎么获取一个多位数每一位的数字,第1张

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中如何对较大的数字进行计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9437735.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存