计算银行获取的所得利息 怎么去求呀 怎么把(num -sum1)弄成小数点后两位呀????

Lin_bai_ 2020-09-25 04:23:44
import com.sun.xml.internal.ws.api.pipe.SyncStartForAsyncFeature;

import java.util.Scanner;

public class bank
{
public static double interest=2.65;//利息
public void rise()
{
interest = interest+0.5;
}
public static void main(String[] args)
{
bank pool = new bank();
System.out.println("当前银行死期年利率为"+interest+"%");
System.out.println("请输入存款本金");
Scanner sc = new Scanner(System.in);
double num = sc.nextDouble();
System.out.println("请输入存款年限");
double year = sc.nextDouble();
double sum1 = num;
for (int i = 1;i<=year;i++)
{
num = num+((num/100)*2.65);
}
System.out.println("5年后,存入20000元所获利息为"+(num -sum1));
}

}
...全文
4761 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
末流码农 2020-09-29
  • 打赏
  • 举报
回复
对了,忘记说了,BigDecimal入参是double的构造函数public BigDecimal(double val)还是可能有丢精的情况,如果num和num1是double 先转成String
或者用BigDecimal的静态方法BigDecimal.valueOf(double val)
末流码农 2020-09-28
  • 打赏
  • 举报
回复
BigDecimal result = new BigDecimal(num).subtract(new BigDecimal(num1)).setScale(2,BigDecimal.ROUND_HALF_UP); 两位小数保留的方式按照你自己预期的来
末流码农 2020-09-28
  • 打赏
  • 举报
回复
涉及到钱的最好用bigdecimal类型哦 ,防止精度丢失
Opticalproperti 2020-09-25
  • 打赏
  • 举报
回复
引用 3 楼 Lin_bai_ 的回复:
好的,Bigdecimal是什么???
add() 相加 subtract() 相减 multiply() 相乘 divide() 相除 算数运行全部是以方法来进行的,运算会精确很多
Lin_bai_ 2020-09-25
  • 打赏
  • 举报
回复
好的,Bigdecimal是什么???
Opticalproperti 2020-09-25
  • 打赏
  • 举报
回复
String.format("%.2f", num - sum1) 不过直接用int计算的容易丢失精度,建议用Bigdecimal
明白畅达 2020-09-25
  • 打赏
  • 举报
回复

public class T6 {

public static void main(String[] args) {

double x1=1.126;

System.out.println(String.format("%.2f",x1));

DecimalFormat df = new DecimalFormat(".00");

System.out.println(df.format(x1));

}

}

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧