(编程题)把一个浮点数分解成整数部分和小数部分,把一个四位的数字字符串变成汉字字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(编程题)把一个浮点数分解成整数部分和小数部分,把一个四位的数字字符串变成汉字字符串相关的知识,希望对你有一定的参考价值。
1 import java.util.*; 2 public class Num2Rmb{ 3 private String[]hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; 4 private String[]unitArr={"十","百","千"}; 5 /** 6 *把一个浮点数分解成整数部分和小数部分字符串 7 *@param num· 需要被分解的浮点数 8 *@return 分解出来的整数部分和小数部分。第一个数组元素是整数部分,第二个数组元素是小数部分 9 */ 10 private String[] divide(double num){ 11 //将一个浮点数类型转换为long 型,即可得到它的整数部分 12 long zheng = (long)num; 13 //浮点数减去整数部分,得到小数部分,小数部分乘以100后再取整得到2位小数 14 long xiao = Math.round((num-zheng)*100); 15 //下面用了2种方法把整数转换成字符串 16 return new String[]{zheng+" ",String.valueOf(xiao)}; 17 } 18 /** 19 *把一个四位的数字字符串变成汉字字符串 20 *@param numStr 需要被转换的四位的数字字符串 21 *@return 四位的数字字符串被转换成汉字字符串 22 */ 23 private String toHanStr(String numStr){ 24 String result = " "; 25 int numLen = numStr.length(); 26 //依次遍历数字字符串的每一位数字 27 for(int i = 0;i<numLen;i++){ 28 //把char型数字转换成int型数字,因为他们的ASCII码值恰好相差48 29 //因此把char型数字减去48得到int型数字,例如‘4‘被转换成4 30 int num = numStr.charAt(i)-48; 31 //如果不是最后一位数字,而且数字不是零,则需要添加单位(千,百,十) 32 if(i!=numLen-1 && num!=0){ 33 result += hanArr[num]+unitArr[numLen-2-i]; 34 } 35 //否则不要添加单位 36 else{ 37 result += hanArr[num]; 38 } 39 } 40 return result; 41 } 42 public static void main(String[]args){ 43 Num2Rmb nr = new Num2Rmb(); 44 //测试把一个浮点数分解成整数部分和小数部分 45 System.out.println(Arrays.toString(nr.divide(236711125.123))); 46 //测试把一个四位的数字字符串变成汉字字符串 47 System.out.println(nr.toHanStr("6109")); 48 } 49 }
以上是关于(编程题)把一个浮点数分解成整数部分和小数部分,把一个四位的数字字符串变成汉字字符串的主要内容,如果未能解决你的问题,请参考以下文章