[阶段一]Java基础语法-数据类型(2)
来源:互联网 发布:台州网络答题知识竞赛 编辑:程序博客网 时间:2024/04/30 19:37
课程内容
此次是在工作日的晚上上课,下班后就匆匆茫茫从软件园飞奔过来。看到学员早已就坐,心里甚是高兴,疲惫感瞬间烟消云散。仿佛看到当年初出茅庐的自己,那种求知若渴的眼神,恨不得快点把自己所学传授予他们。此次课程依旧着眼于数据类型,从浮点类型继续往下讲。
- 浮点类型 ——float 4字节 double 8字节
- 浮点数科学计数法——指数,尾数,基数,精度
- 浮点数运算——存在误差且比较慢
- 字符类型——char 2字节
- unicode字符编码—— 约8w+字符,是ASCII编码的超集
- 转义字符—— \n \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
3 0
- [阶段一]Java基础语法-数据类型(2)
- [阶段一]Java基础语法-数据类型(1)
- [阶段一]Java基础语法-数据类型(3)
- [阶段一]Java基础语法-运算符、流程控制、数组
- java基础语法--数据类型
- 求知过程之语法基础阶段一
- java语法基础--关键字,数据类型
- java基础一数据类型
- [阶段一]Java基础类库(2)
- JavaScript基础(一)之语法、变量、数据类型
- 【Java基础 一】---基础语法
- Java 基础(2)----基本语法一
- [阶段一]java基础编程比赛
- Java 基础语法:标识符、关键字、数据类型
- java的基础语法1-----------数据类型
- Java基础语法知识之数据类型
- java基础语法-运算符和数据类型
- JAVA基础(一) 基本数据类型
- Java的接口和抽象类详解
- DELPHI 中 Window 消息大全使用详解
- 報告。連絡。相談
- 第九周项目3-人数不定的工资类
- c++实验6—项目3
- [阶段一]Java基础语法-数据类型(2)
- oracle数据库高低版本之间导入导出(10g和11g),dmp格式
- [绍棠] ios常见问题解决
- C++第六次实验
- SpringMVC+Hibernate+Spring整合实例
- Qt中出错error: undefined reference to `WSAStartup@8'
- hdu 1028Ignatius and the Princess III(dp)
- 第九周 项目1-深复刻体验
- 第五周项目二(1)游戏中的角色类