zoukankan      html  css  js  c++  java
  • 金额转大写

    import java.math.BigDecimal;

    public class TestBigChar {
        
    public static char[] characters = { '''''''''''''''','''' };
        
    public static char[] units = {'''''''' ,'','''''','亿'};
        
    public static char[] units2 = {''''};
        

        
    public static void main(String[] args) {        
            System.out.println(convert(
    30000000.84));
        }

        
    public static String convert(double d) {        
            
    //String val =String.valueOf(d);        
            BigDecimal bb
    =new BigDecimal(String.valueOf(d));
            String val 
    =bb.toString();         
            String convert 
    = "";
            
    int index = val.indexOf('.');
            
    for (int i = 0; i < val.length(); i++) {
                
                
    //处理小数点
                if(i==index){
                    
    continue;
                }
                convert 
    +=characters[Integer.parseInt(val.substring(i, i + 1))];
                
                
    //处理整数部分
                if (i < index){
                    
    int b=i;   
                    convert 
    += units[index -(b+1)];                
                }
                
                
    //处理小数部分
                if(i>index){                
                    convert 
    +=units2[i-index-1];
                } 
            }
            
    return convert;
        }

    }

    有一点要说明的是为什么要把double转成BigDecimal呢,这是因为当金额达到到千万时,double的tostring方法会以科学计数法的形式表示,这时程序会因无法解析E而报错,而转换为BigDecimal再tostring方法就不会以科学计数法表示了。
      
  • 相关阅读:
    对Java课程的感想
    OO第二阶段总结
    OO第一作业周期(前四周)总结
    实验7 流类库和输入输出
    实验6 类的继承和多态
    实验5 类和对象3
    实验4 类与对象2
    实验3 类和对象
    实验2
    实验1
  • 原文地址:https://www.cnblogs.com/Fskjb/p/1578318.html
Copyright © 2011-2022 走看看