JAVA程序计算结果出错

JAVA程序计算结果出错,第1张

看到中文 有种真没看过 哈哈

原因是因为java 的double类型数据是不精准的

实际开发会用下面api 提供的类

Java在javamath包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用javamathBigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是

BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。

BigDecimal bigLoanAmount = new BigDecimal("具体数值"); //创建BigDecimal对象

BigDecimal bigInterestRate = new BigDecimal("具体数值");

BigDecimal bigInterest = bigLoanAmountmultiply(bigInterestRate); //BigDecimal运算

NumberFormat currency = NumberFormatgetCurrencyInstance(); //建立货币格式化引用

NumberFormat percent = NumberFormatgetPercentInstance(); //建立百分比格式化用

percentsetMaximumFractionDigits(3); //百分比小数点最多3位

//利用BigDecimal对象作为参数在format()中调用货币和百分比格式化

Systemoutprintln("Loan amount:\t" + currencyformat(bigLoanAmount));

Systemoutprintln("Interest rate:\t" + percentformat(bigInterestRate));

Systemoutprintln("Interest:\t" + currencyformat(bigInterest));

输出结果

Loan amount: ¥129,876,534,219,876,52312

Interest rate: 8765%

Interest: ¥11,384,239,549,149,66169

public class Mystery {

/

@param String[] args 接收输入参数 args[0] args[1]

@return void

/

public static void main(String[] args) {

Changer c = new Changer();

cmethod(args);

Systemoutprintln(args[0] + " " + args[1]);

}

static class Changer {

/

交换字符数组位置0和1的值

在java中,参数传递都是值传递

所以这里变量s和args的本身地址是不一样的

但是他们所指向的输入参数字符数组地址是一样的

@param String[] s 要交换的字符数组

/

void method(String[] s) {

String temp = s[0];

s[0] = s[1];

s[1] = temp;

}

}

}

输入:Mighty Mouse

存放的结构为:

参数对象:String[] {"Mighty", "Mouse"} 暂且命名为 args_obj(这个在java内部就是一地址)

变量args指向这个地址:args->args_obj

再调用method时,变量s指向args指向的地址:s->args_obj

故结果为:

[答案] 打印:Mouse Mighty

public class Pass{

/

定义静态变量

意思就是说定义后,所有对j的修改都会保留下来

/

static int j=20;

public static void main(String argv[]){

/

i 为局部变量,在方法内部调用后,外部值不发生变化

/

int i=10;

Pass p = new Pass();

pamethod(i);

Systemoutprintln(i);

Systemoutprintln(j);

}

/

由于java传递参数是复制传递(值传递),故内部的x和外部的i是两个不同的变量

内部x的修改不会影响到外部的i变量

/

public void amethod(int x){

x=x2;

j=j2;

}

}

[答案] 打印:10 40

查看主方法那一行,是不是public static void main(String[ ] args),无论是掉了一个关键字比如static,还是拼写错误,比如main写成mian,运行结果都会是上一个程序,因为错一个就相当于这个程序没有主方法也就是程序入口,因此程序是不能执行的。

C运行正常,没任何输出

当这一句private boolean flag = false;

改为private boolean flag = true;时,才会输出Sample

这一题是考内部类的相关知识

以上就是关于JAVA程序计算结果出错全部的内容,包括:JAVA程序计算结果出错、关于java程序运行结果的问题,请指教哦、eclipse运行java怎么总显示上一个程序的运行结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10133558.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存