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方法就不会以科学计数法表示了。
      
  • 相关阅读:
    C#编程思路
    将字符串类型字段转为map类型字段,使用str_to_map()函数
    写hive脚本时,如果hive的过滤条件比较多。可以把过滤条件放到一个参数里。然后把参数放到过滤条件处。这样以后只需要改参数就可以了
    linux中. 路径/文件
    inner join ,left join 会导致数据发散
    如何批量按分区插入数据
    hive表添加字段后,查不出数据是咋回事?
    linux中$0的含义
    linux中的$#含义
    linux的语法
  • 原文地址:https://www.cnblogs.com/Fskjb/p/1578318.html
Copyright © 2011-2022 走看看