「java大数相减」java小数相减

博主:adminadmin 2022-11-24 22:30:07 70

本篇文章给大家谈谈java大数相减,以及java小数相减对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java.求两个大数的精确加减法,a=4632864832684683568465765487657665765236465244

花了十分钟,亲手给你订制的,测试过了正确

下面给你贴出源代码

public class AddSub {

public static void main(String[] args) {

String a="4632864832684683568465765487657665765236465244";

String b="47";

int []pa=stringToInts(a);

int []pb=stringToInts(b);

String ans_add=add(pa, pb);

String ans_sub=sub(pb,pa);

System.out.println("相加结果是:"+ans_add);

System.out.println("相减结果是:"+ans_sub);

}

public static int[] stringToInts(String s){

int[] n = new int[s.length()];

for(int i = 0;is.length();i++){

n[i] = Integer.parseInt(s.substring(i,i+1));

}

return n;

}

public static String add(int []a,int []b){

StringBuffer sb=new StringBuffer();

int a_len= a.length-1;

int b_len=b.length-1;

int jinwei=0;//进位

while(a_len=0||b_len=0){

int temp=0;

if(a_len=0b_len=0){

temp=a[a_len]+b[b_len]+jinwei;

}else if(a_len=0){

temp=a[a_len]+jinwei;

}else if(b_len=0){

temp=b[b_len]+jinwei;

}

sb.append(temp%10+"");

jinwei=temp/10;

a_len--;b_len--;

}

return getNum(sb.reverse());

}

public static String sub(int []a,int []b){

StringBuffer sb=new StringBuffer();

boolean flag=false;//判断a是不是比b小

if(a.lengthb.length){

int c[]=a;

a=b;b=c;

flag=true;

}

int a_len= a.length-1;

int b_len=b.length-1;

int jiewei=0;//借位

while(a_len=0||b_len=0){

int temp=0;

if(a_len=0b_len=0){

if((a[a_len]-jiewei)b[b_len]){

temp=a[a_len]+10-b[b_len]-jiewei;

jiewei=1;

}else{

temp=a[a_len]-b[b_len]-jiewei;

}

}else if(a_len=0){

temp=a[a_len]-jiewei;

jiewei=0;

}

sb.append(temp+"");

a_len--;b_len--;

}

if(flag){

return getNum(sb.append("-").reverse());

}

return getNum(sb.reverse());

}

//去掉最前面的0

public static String getNum(StringBuffer sb){

while(sb.length() 1 sb.charAt(0) == '0') {

sb.deleteCharAt(0);

}

return sb.toString();

}

}

java大数的加减法怎么输入0结束?

你说的是BigInteger吧

你先以字符串的形式读进来,然后用BigInteger的构造函数通过字符串来构造得到大整数

BigInteger自带比较函数,你用它的比较函数就可以跟0比较结束,0也需要用字符串来构造他的大整数

java中如何对较大的数字进行计算

不管是不是用JAVA,其实方法都一样,利用数组比如说长度为一千的数字,可以这个 int[] number = new int[1000];相加的思路是,首先两个数组的长度必须是一致,位数不同的话,前面补0,内存有点浪费,但是计算起来比较方便。然后让它们从0到最高位,每位进行相加并保存相应的位置上。最后一步是从0开始判断有没有大于10的数字,如果有就向前面进位(前一个加1,当前位减10),这样就可以。如果是相减,其实思路还是一样的,每位先相减,再判断是否有小于0的,如果有则向前面一位借1(前一位减1,当前位加10)如果是相乘,和上面一样,不过要注意的是进位的时候,不止进一位,比如5*6,就要向前进3位了(前一位加3,当前位减30)除就比较麻烦点,要涉及到精确度问题,得看实际需要 输出就更容易了,直接for循环数组 特别要注意的是,如果最高位有进位的时候,这个是比较容易出错的地方 思路在上面,如果实现不了请留言

求JAVA代码,要求输入两个数,实现超大数的相加和相减

package test;

public class DoubleTest {

    /**

     * @param args

     */

    public static void main(String[] args) {

        System.out.println(Long.MAX_VALUE);//最大数:9223372036854775807

        System.out.println(Long.MIN_VALUE);//最小数:-9223372036854775808

        System.out.println(Double.MAX_VALUE);//最大数:1.7976931348623157E308

        System.out.println(Double.MIN_VALUE);//最小数:4.9E-324

        Double a = 9223372036854775807d;

        Double b = 9223372036854775807d;

        Double c =a+b;

        System.out.println(c);

                              

    }

}

用Double型吧。最大了。

java中的大数类实现大数相减

//用BigInteger

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.math.BigInteger;

import java.util.Arrays;

public class MenuNumber {

public static void main(String[] args) throws IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(

System.in));

while(true){

System.out.println("请输入正整数进行相关运算,输入over结束");

String str= br.readLine();

if(str.toLowerCase().equals("over")){

System.out.println("=程序结束=");

break;

}

char[] c=str.toCharArray();//从小到大排序

Arrays.sort(c);//排序

String str_1="",str_2="";

for(int i=0;ic.length;i++){

str_1+=c[i];//从小到大排序的数字

str_2+=c[c.length-1-i];//从大到小排序的数字

}

try{

//将字符串格式化为数字

BigInteger l1=new BigInteger(str_1);

BigInteger l2=new BigInteger(str_2);

//输出

System.out.println("原 数-"+str+"\n降 序-"+l2+"\n升 序-"+l1+"\n之 差-"+l2.subtract(l1));

}catch(NumberFormatException ne){

System.out.println("请输入正整数,谢谢合作!");//输入的不是数字时的处理。

}

}

}

}

关于java大数相减和java小数相减的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。