int a =2634;
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、成都网站建设、德兴网络推广、小程序制作、德兴网络营销、德兴企业策划、德兴品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供德兴建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
int num100 =a/100=26;
int num50 = (a - num100*100)/50=0;
int num10 = (a-num100*100-num50*50)/10=3;
int num5 = (a-num100*100-num50*50-num10*10)/5=0;
照上面的改改
java30位数字字符转金额
步骤如下
1、进行输入操作,并进行判断是否超过七位数或者输入的数为负数,或输入不合法的数。
while(true){
Scanner sc = new Scanner(System.out);
System.out.println("输入数字:");
number = sc.nextInt();
if(number = 0 number = 999999){
break;
}else{
System.out.println("输入无效!");
}
}
复制
2、定义一个方法 getCapitalNumber 用来将数字转换为对应的大写。
public static String getCapitalNumber(int number){
String[] str = {"零", "壹", "贰", "叁", "肆", "伍", "陆","柒","捌","玖"};
return str[number];
}
复制
3、数字转换为大写的过程
numberStr = "";
while(true){
ge = number % 10;//取到输入金额的最后一位数字
String capitalNumber = getCapitalNumber(ge);//将金额的最后一位数字传入getCapitalNumber()方法中,转换为对应的大写
numberStr = capitalNumber + numberStr;//转换为大写后的数字进行拼接
number = number / 10;
//结束条件 --数字遍历完
if(number == 0){
break;
}
}
复制

4、在转换为大写后,不足七位的要在前面补零,零的个数为 7- (输入金额的位数)。
int count = 7 - numberStr.length();
for(int i = 0; i count; i++){
numberStr = "零" + numberStr;
}
复制
5、将单位与对应的大写数字拼接
String result = "";
String[] arr = {"佰","拾","万","仟","佰","拾","元"};
for(int i = 0; i numberStr; i++){
char c = numberStr.charAt(i);
result = result + c + arr[i];
}
复制
6、放入完整的代码
如果你的money1 是所有商品的总价, money 是每种商品的价格
上面所写的code 就是所有商品的价格。
int money1=0;
for(int i =0; i list.size(); i++)
{
Commodity commoditys = (Commodity ) list.get(i); #得到商品
double money= (commoditys.getNumber()*commoditys.getPrice());#该商品的单价乘以数量
money1=money1+money; #得到总价
}
System.out.println("Total price will be: ", money1); #输出总价
回答: 一般使用 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