「java金钱计算」java利润计算

博主:adminadmin 2022-12-03 01:09:06 74

今天给各位分享java金钱计算的知识,其中也会对java利润计算进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java编写:计算一元钱硬币有多少种表达方式。例如,可以使用1元钱完成,也可以使用两个5角完成。

import java.util.ArrayList;

/*

* 一元钱硬币有多少种表达方式

* 可供选择:1分,2分,5分,1角,2角,5角,1元

* 如:

* 1元=1元;

* 1元=5角+5角;

* ....

*/

public class Test {

private static int count;

public static void main(String args[]){

int max = 100;//一元

int[] cents = {100,50,20,10,5,2,1};//币值

String[] money = {"1元","5角","2角","1角","5分","2分","1分"};

ArrayList collect = new ArrayList();

collectMoney(cents, money,0, max, 0, collect);

System.out.println("总共有"+count+"种搭配方法!");

}

public static void collectMoney(int[] cents,String[] money,int beginIndex,int max,int result,ArrayList collect){

if(result=max){

if(result==max){

count++;

System.out.print("1元=");

for(int i=0;icollect.size();i++){

System.out.print(money[(Integer) collect.get(i)]);

if(icollect.size()-1){

System.out.print("+");

}

}

System.out.println();

}

return;

}

for(int i=beginIndex;icents.length;i++){

int cent = cents[i];

collect.add(i);

collectMoney(cents, money,i, max, result+cent, collect);

collect.remove(Integer.valueOf(i));

}

}

}

Java编程:最少钱币数,这是一个古老而又经典的问题,用给定的几种钱币

/**

* 简单用人民币的常见数额做了初始化

*/

public class Test {

public static void main(String[] args){

int[] commonMoney = {100,50,20,10,5,1};

System.out.println(getLeastNum(108,commonMoney));

}

static String getLeastNum(int targetMoney,int[] commonMoney){

StringBuffer buffer = new StringBuffer();

int num = 0,total = 0;

String result = targetMoney + "$ 最少需要 ";

for(int money : commonMoney){

if(targetMoney = money){

total += num = targetMoney/money;

targetMoney = targetMoney%money;

buffer.append("," + num + " 张 " + money + "$");

}

if(0 == targetMoney) break;

}

return result + total + " 张货币,分别是: " + buffer.substring(1);

}

}

输出:

108$ 最少需要 5 张货币,分别是: 1 张 100$,1 张 5$,3 张 1$

java开发中,一般涉及到金钱计算的时候用什么数据类型

回答: 一般使用 java.math.BigDecimal  类来处理需要高精度的计算

原因: 1.浮点数(double,flot)因为精度问题, 容易出现不精确的计算结果

2.浮点数范围比较小

BigDecimal  范围大, 并且比他们精确

参考代码

import java.math.BigDecimal;

public class Demo {

public static void main(String[] args) {

//浮点数,存在精度问题

double d1 = 0.19*6;

System.out.println(d1);//1.1400000000000001

//采用BigDecimal 来解决精度问题

BigDecimal bd1 = new BigDecimal("0.19");

BigDecimal bd2 = new BigDecimal("6");

BigDecimal bd3 = bd1.multiply(bd2);

System.out.println(bd3);//1.14

}

}

输出

1.1400000000000001

1.14

java 金钱转换问题 (100分送你)

不能sNumber[intLen+1+i]这样读取字符串中的字符

要用String类中的substring()

错误比较多,重写了以下代码........

还有问题请发信息给我,这100分一定要给我哦........

import java.io.*;

import java.lang.*;

public class change{

public String NoTranslate(String sNumber){

String[] oneUnit = {"元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};

String[] twoUnit = {"分","角"};

String[] sChinese = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};

int pointPos = sNumber.indexOf("."); //小数点的位置

String sInteger;//记录整数部分

String sDecimal;//记录小数部分

String value="";//记录返回结果

if(pointPos!=-1){

//分解并记录整数部分,注意substring()的用法

sInteger=sNumber.substring(0,pointPos);

//分解并记录小数部分

sDecimal=sNumber.substring(pointPos+1,

pointPos+3sNumber.length()?pointPos+3:sNumber.length());

}else{

//没有小数部分的情况

sInteger=sNumber;

sDecimal="";

}

//格式化整数部分,并记录到返回结果

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

int temp = Integer.parseInt(sInteger.substring(i,i+1));

value += sChinese[temp]+oneUnit[sInteger.length()-i-1];

}

//格式化小数部分,并记录到返回结果

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

int temp = Integer.parseInt(sDecimal.substring(i,i+1));

value += sChinese[temp]+twoUnit[sDecimal.length()-i-1];

}

//返回结果

return(value);

}

public static void main(String argument[]){

String value="";

try{

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

value=br.readLine();

}catch(IOException e){}

change c=new change();

System.out.println(c.NoTranslate(value));

}

}

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

The End

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