
看到中文 有种真没看过 哈哈
原因是因为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怎么总显示上一个程序的运行结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)