[フェーズ1]Java基礎構文-データ型(2)


レッスン内容
今度は平日の夜に授業があり、退勤後はソフトウェアパークから慌ただしく飛んできた.学生がとっくに座っているのを見て、心の中はとても喜んで、疲れが一瞬にして消えてしまった.まるでその年にデビューした自分を見ているようで、その知識を求める目つきは、早く自分の学んだことを彼らに伝えたくない.今回のコースでは、データ型に着目し、浮動小数点型から引き続き説明します.
  • 浮動小数点タイプ-float 4バイトdouble 8バイト
  • 浮動小数点数科学計数法——指数、尾数、基数、精度
  • 浮動小数点数演算-誤差があり、
  • が比較的遅い.
  • 文字タイプ-char 2バイト
  • unicode文字符号化-約8 w+文字、ASCII符号化のスーパーセット
  • エスケープ文字--t\'
  • ブールタイプ-boolean(true or false)
  • 授業の宿題
    プログラムを作成し、浮動小数点数を人民元読みに変換し、例えば1006.33を壹仟零陸元叁角叁分に変換する.△今回の作業は難易度が高く、これまで学んだことや、後で学ぶことについて、この作業を通じて橋を架けたいと思っています.
    package com.mashen;
    
    import java.util.Scanner;
    
    /* *              * @author tony * @date 2016-5-22 * @version v1.0.0 */
    public class NumToStr {
    
        //0~9      
        private final String[] hanArr = {" ", " ", " ", " ", " ", " ", " ", " ", " ", " "};
        //    
        private final String[] unitArr = {" ", "", " ", " "};
        private final String[] tag = {" ", " ", " "};
    
    
        public static void main(String[] args) {
            NumToStr ntr = new NumToStr();
            System.out.println("     :");
            Scanner scanner=new Scanner(System.in);
            //       num
            double num=scanner.nextDouble();
            //       ,      
            String numStr=ntr.toHanStr(num);
            System.out.println(numStr);
        }
    
        /* *          * @param {double}        * @return {String}          */
        public String toHanStr(double num) {
            String result = "";
            //     long  ,      
            long zheng = (long)num;
            //         ,       100,       
            long xiao = (long)(Math.round((num - zheng) * 100));
    
            //         0   ,        
            if(0 == zheng) {
                int tempJiao = (int)(xiao / 10);
                int tempFen = (int)(xiao % 10);
                if(tempJiao != 0) {
                    result += hanArr[tempJiao] + " ";
                }
                if(tempFen != 0) {
                    result += hanArr[tempFen] + " ";
                }
                return result;
            }
            String zhengStr = String.valueOf(zheng);
            int len = zhengStr.length();
    
            int tempLen = 0;
            //         
            for(int i = 0; i < len; i++) {
                // ASCII    ,          48
                int temp = zhengStr.charAt(i) - 48;
                //         
                int part = (len - i - 1) / 4; 
                //               
                int location = (len - i - 1) % 4; 
                //         
                if(location != 0) {
                    //        0
                    if(temp != 0) {
                        //      
                        result += hanArr[temp] + unitArr[(len - i) % 4]; 
                        continue;
                    }
                    //     0
                    else { 
                        tempLen = result.length();
                        //     0       
                        if(3 == location && result.charAt(tempLen - 1) != ' ') { 
                            result += " "; continue;
                        } else {
                            tempLen = result.length();
                            if(result.charAt(tempLen - 1) == ' ') {
                                continue;
                            } else {
                                result += " "; continue;
                            }
                        }
                    }
                } 
                //       
                else { 
                    if(temp != 0) {
                        result += hanArr[temp] + tag[part]; continue;
                    } else {
                        tempLen = result.length();
                        if(result.charAt(tempLen - 1) != ' ') {
                            result += tag[part]; continue;
                        } else {
                            if(result.charAt(tempLen - 2) == ' ' || result.charAt(tempLen - 2) == ' ') {
                                continue;
                            } else {
                                result = result.substring(0, tempLen - 1) + tag[part]; continue;
                            }
                        }
                    }
                }
            }
    
            //      ,     ,     
            int jiao = (int)(xiao / 10);
            int fen = (int)(xiao % 10);
            if(jiao != 0) {
                result += hanArr[jiao] + " ";
            }
            if(fen != 0) {
                result += hanArr[fen] + " ";
            }
    
            return result;
        }
    }

    レッスン
    03.Java基礎構文-データ型1.pptx