导航:首页 > 编程语言 > java金额单位

java金额单位

发布时间:2021-03-05 14:12:56

java转换数字以万为单位

import java.util.Scanner;

/**

* 小于100000的不转换,大于或等于100000的转换为10万,以此类推,110000转为11万,112000为11.2万

* @author inferno

*

*/

public class Wan {


public static void main(String[] args) {

System.out.print("输入一个专整数:");

Scanner scan = new Scanner(System.in);

long num = scan.nextLong();

if(num<100000){

System.out.println("您输属入的数字为:"+num);

}else{

double n = (double)num/10000;

System.out.println("您输入的数字为:"+n+"万");

}

}

}

㈡ java中如何查看每个部门金额以及合计,如何定义实体,如何定义集合

public static void main(String args[]) { //模拟10个不重复的商品加入集合 HashSet<Proct> data = new HashSet<>(); Random random = new Random(); for (int i = 0; i < 10; i++) { int goodsId = random.nextInt(100); boolean isAdded = data.add(new Proct(goodsId, goodsId + "name", goodsId, "util", goodsId)); if (!isAdded) { i--; } } //如果知道一个id,得到所有信息? //将这个data转化为map,键为id值为javabean HashMap<Integer, Proct> hashMap = new HashMap<>(); for (Proct item : data) { hashMap.put(item.goodsId, item); } //拿到id,get就行了 hashMap.get(??); }class Proct { /** * 商品编号 */ int goodsId; /** * 商品名称 */ String name; /** * 商品价格 */ double price; /** * 商品单位 */ String util; /** * 商品数量 */ double num; public Proct(int goodsId, String name, double price, String util, double num) { this.goodsId = goodsId; this.name = name; this.price = price; this.util = util; this.num = num; } @Override public boolean equals(Object obj) { return this.goodsId == ((Proct) obj).goodsId; } @Override public String toString() { return "Proct{" + "goodsId=" + goodsId + ", name='" + name + '\'' + ", price=" + price + ", util='" + util + '\'' + ", num=" + num + '}'; }}

㈢ 用java财务软件中最后的总金额是怎么算的

public static void main(String args[]) {
.out.println("********************");
System.out.println("");
System.out.println("请选择购买的商品编号:");
System.out.println("1.T恤(¥245.0) 网球鞋(¥570.0) 网球拍(¥500.0)");
System.out.println("********************");
System.out.println("");
double s = 0;
String d;
do {
System.out.print("请输入商品编号:");
Scanner input = new Scanner(System.in);
int a = input.nextInt();
if (a == 1) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 245 * b;
System.out.println("T恤¥245.0 数量:" + b + " " + "合计:" + c);
s = s + c;
} else if (a == 2) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 570 * b;
System.out.println("网球鞋¥245.0 数量:" + b + " " + "合计:" + c);
s = s + c;
} else if (a == 3) {
System.out.print("请输入购买数量:");
int b = input.nextInt();
double c = 500 * b;
System.out.println("网球拍¥245.0 数量:" + b + " " + "合计:" + c);
s = s + c;
} else {
System.out.println("无此商品");
}
System.out.print("是否继续(y/n)");
d = input.next();
System.out.println();
} while (d.equals("y"));
double m = s * 0.8;
System.out.println(":0.8");
System.out.println("应付金额:" + m);
System.out.print("实际金额:");
Scanner input = new Scanner(System.in);
int x = input.nextInt();
System.out.println();

double p = x - m;
System.out.println("找钱:" + p);
}
这样显示就和截图一样了

㈣ java 给输入的数字加上单位

将double Depth;double Guess;改成String类型的,然后用next()接受控制台参数
取用的时候用substring(int begain,int end)分别截取数字部版分和单权位部分就行

㈤ java实现金额转换,阿拉伯数字的金额转换成中国传统的形式

直接通过以下接口类方法实现即可:
import java.math.BigDecimal;
/**
* 金额工具
*
* @author zn
*
* @Date 2013-2-1
* @Email [email protected]
*/
public class MoneyUtil {

private static final int DFT_SCALE = 2;

/** 大写数字 */
private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍",
"陆", "柒", "捌", "玖" };
/** 整数部分的单位 */
private static final String[] IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰",
"仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };
/** 小数部分的单位 */
private static final String[] DUNIT = { "角", "分", "厘" };

/**
* 得到大写金额。
*/
public static String toChinese(String str) {
str = str.replaceAll(",", "");// 去掉","
String integerStr;// 整数部分数字
String decimalStr;// 小数部分数字

// 初始化:分离整数部分和小数部分
if (str.indexOf(".") > 0) {
integerStr = str.substring(0, str.indexOf("."));
decimalStr = str.substring(str.indexOf(".") + 1);
} else if (str.indexOf(".") == 0) {
integerStr = "";
decimalStr = str.substring(1);
} else {
integerStr = str;
decimalStr = "";
}
// integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去)
if (!integerStr.equals("")) {
integerStr = Long.toString(Long.parseLong(integerStr));
if (integerStr.equals("0")) {
integerStr = "";
}
}
// overflow超出处理能力,直接返回
if (integerStr.length() > IUNIT.length) {
System.out.println(str + ":超出处理能力");
return str;
}

int[] integers = toArray(integerStr);// 整数部分数字
boolean isMust5 = isMust5(integerStr);// 设置万单位
int[] decimals = toArray(decimalStr);// 小数部分数字
return getChineseInteger(integers, isMust5)
+ getChineseDecimal(decimals);
}

/**
* 整数部分和小数部分转换为数组,从高位至低位
*/
private static int[] toArray(String number) {
int[] array = new int[number.length()];
for (int i = 0; i < number.length(); i++) {
array[i] = Integer.parseInt(number.substring(i, i + 1));
}
return array;
}

/**
* 得到中文金额的整数部分。
*/
private static String getChineseInteger(int[] integers, boolean isMust5) {
StringBuffer chineseInteger = new StringBuffer("");
int length = integers.length;
for (int i = 0; i < length; i++) {
// 0出现在关键位置:1234(万)5678(亿)9012(万)3456(元)
// 特殊情况:10(拾元、壹拾元、壹拾万元、拾万元)
String key = "";
if (integers[i] == 0) {
if ((length - i) == 13)// 万(亿)(必填)
key = IUNIT[4];
else if ((length - i) == 9)// 亿(必填)
key = IUNIT[8];
else if ((length - i) == 5 && isMust5)// 万(不必填)
key = IUNIT[4];
else if ((length - i) == 1)// 元(必填)
key = IUNIT[0];
// 0遇非0时补零,不包含最后一位
if ((length - i) > 1 && integers[i + 1] != 0)
key += NUMBERS[0];
}
chineseInteger.append(integers[i] == 0 ? key
: (NUMBERS[integers[i]] + IUNIT[length - i - 1]));
}
return chineseInteger.toString();
}

/**
* 得到中文金额的小数部分。
*/
private static String getChineseDecimal(int[] decimals) {
StringBuffer chineseDecimal = new StringBuffer("");
for (int i = 0; i < decimals.length; i++) {
// 舍去3位小数之后的
if (i == 3)
break;
chineseDecimal.append(decimals[i] == 0 ? ""
: (NUMBERS[decimals[i]] + DUNIT[i]));
}
return chineseDecimal.toString();
}

/**
* 判断第5位数字的单位"万"是否应加。
*/
private static boolean isMust5(String integerStr) {
int length = integerStr.length();
if (length > 4) {
String subInteger = "";
if (length > 8) { // TODO 12-9-17
// 取得从低位数,第5到第8位的字串
subInteger = integerStr.substring(length - 8, length - 4);
} else {
subInteger = integerStr.substring(0, length - 4);
}
return Integer.parseInt(subInteger) > 0;
} else {
return false;
}
}

/**
* BigDecimal 相乘,四舍五入保留0位
*
* @param a
* @param b
* @return a*b
*/
public static BigDecimal mutiply(String a, String b, int roundingMode) {
BigDecimal bd = new BigDecimal(a);
return bd.multiply(new BigDecimal(b)).setScale(DFT_SCALE, roundingMode);
}

/**
* BigDecimal 相除,四舍五入保留两位
*
* @param a
* @param b
* @return a/b
*/
public static BigDecimal div(String a, String b, int roundingMode) {
BigDecimal decimal1 = new BigDecimal(a);
BigDecimal decimal2 = new BigDecimal(b);
return decimal1.divide(decimal2, DFT_SCALE, roundingMode);
}

/**
* BigDecimal 相加,四舍五入保留两位
*
* @param a
* @param b
* @return a+b
*/
public static BigDecimal sum(String a, String b, int roundingMode) {
BigDecimal decimal1 = new BigDecimal(a);
BigDecimal decimal2 = new BigDecimal(b);
// DecimalFormat format = new DecimalFormat("#0.00");
return decimal1.add(decimal2).setScale(DFT_SCALE, roundingMode);
}

/**
* BigDecimal 相减,四舍五入保留两位
*
* @param a
* @param b
* @return a+b
*/
public static BigDecimal sub(String a, String b, int roundingMode) {
BigDecimal decimal1 = new BigDecimal(a);
BigDecimal decimal2 = new BigDecimal(b);
// DecimalFormat format = new DecimalFormat("#0.00");
return decimal1.subtract(decimal2).setScale(DFT_SCALE, roundingMode);
}

/**
* 100.00 为10000
*
* @param a
* @return
*/
public static BigDecimal format(String a, int roundingMode) {
return new BigDecimal(a).multiply(new BigDecimal(100)).setScale(0,
roundingMode);
}

public static void main(String[] args) {
String number = "54452";
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = "30200";
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = "30000.05";
System.out.println(number + " " + MoneyUtil.toChinese(number));
number = "30000.00";
System.out.println(number + " " + MoneyUtil.toChinese(number));
}
}
备注:最后面的main方法是具体的调用。

㈥ java 中,如何编程实现千位分隔符,如1000000显示成1,000,000

使用DecimalFormat类来实现,具体代码如下:
import java.text.DecimalFormat;
class moneyFormat{
public static void main(String args[]){
long n =10000000;
DecimalFormat df = new DecimalFormat("#,###");
String m = df.format(n);
System.out.print(m);
}
}
输出结果如下
10,000,000
一般金额是需要保留内两位小容数,如果想保留小数把"#,###" 改成"#,###.00"

望采纳!谢谢!

㈦ java中总金额怎么实现

这个要看你具体的要求了,可以通过数据库直接保存,也可以通过其他的金额在程序里通过java程序计算取得

㈧ 谁能提供个java金额转换的程序

import java.math.BigDecimal;

public class MoneyChange {

/**
* Description 将数字金额转换为中文金额
*
* @param
* <p>
* String Money 转换前的数字金额
* </P>
* @return String MoneyStringToChineseCurrency("101.89")="壹佰零壹圆捌角玖分"
* MoneyStringToChineseCurrency("100.89")="壹佰零捌角玖分"
* MoneyStringToChineseCurrency("100")="壹佰圆整"
*/
public static String MoneyStringToChineseCurrency(String Money) {

// 中文金额单位数组
String[] straChineseUnit = new String[] { "分", "角", "圆", "拾", "佰", "仟",
"万", "拾", "佰", "仟", "亿", "拾", "佰", "仟" };
// 中文数字字符数组
String[] straChineseNumber = new String[] { "零", "壹", "贰", "叁", "肆",
"伍", "陆", "柒", "捌", "玖" };

BigDecimal bigdMoneyNumber = new BigDecimal(Money);

String strChineseCurrency = "";
// 零数位标记
boolean bZero = true;
// 中文金额单位下标
int ChineseUnitIndex = 0;

try {
if (bigdMoneyNumber.doubleValue() == 0)
return "零圆整";

// 处理小数部分,四舍五入
double doubMoneyNumber = Math
.round(bigdMoneyNumber.doubleValue() * 100);

// 是否负数
boolean bNegative = doubMoneyNumber < 0;

// 取绝对值
doubMoneyNumber = Math.abs(doubMoneyNumber);

// 循环处理转换操作
while (doubMoneyNumber > 0) {
// 整的处理(无小数位)
if (ChineseUnitIndex == 2 && strChineseCurrency.length() == 0)
strChineseCurrency = strChineseCurrency + "整";

// 非零数位的处理
if (doubMoneyNumber % 10 > 0) {
strChineseCurrency = straChineseNumber[(int) doubMoneyNumber % 10]
+ straChineseUnit[ChineseUnitIndex]
+ strChineseCurrency;
bZero = false;
}
// 零数位的处理
else {
// 元的处理(个位)
if (ChineseUnitIndex == 2) {
// 段中有数字
if (doubMoneyNumber > 0) {
strChineseCurrency = straChineseUnit[ChineseUnitIndex]
+ strChineseCurrency;
bZero = true;
}
}
// 万、亿数位的处理
else if (ChineseUnitIndex == 6 || ChineseUnitIndex == 10) {
// 段中有数字
if (doubMoneyNumber % 1000 > 0)
strChineseCurrency = straChineseUnit[ChineseUnitIndex]
+ strChineseCurrency;
}

// 前一数位非零的处理
if (!bZero)
strChineseCurrency = straChineseNumber[0]
+ strChineseCurrency;

bZero = true;
}

doubMoneyNumber = Math.floor(doubMoneyNumber / 10);
ChineseUnitIndex++;
}

// 负数的处理
if (bNegative)
strChineseCurrency = "负" + strChineseCurrency;
} catch (Exception e) {
System.out.println("error!");
return "";
}

return strChineseCurrency;
}

/**
* @param args
*/
public static void main(String[] args) {
System.out.println(MoneyStringToChineseCurrency("15312.10"));
}

}
你试试看

㈨ java简单题:一组金额数据,用人民币大写显示出来

/**
*程序目的:
*从命令行接收一个数,并将其转化为中文金额的大写方式
*例如123.45-->壹佰贰拾叁元肆角伍分
*@authorgdb
*
*实在是不符合规范,程序里面的算法没有让人明白得很清楚的注释,读上去觉得有
*点难度,可读性不强。而且很多程序还存在不少bug,随便一测就测出来了。
*所以本人还是决定重新写一下这个程序,并且尽量做到消除不必要的bug。这个程
*序我没有用什么很精妙的算法,不过用了一些Java类库中的类,像是正则表达式之类
*
*/
publicclassTrans2RMB{

/**
*测试程序的可行性
*@paramargs
*/
publicstaticvoidmain(String[]args){
System.out.println(" --------将数字转换成中文金额的大写形式------------ ");
Trans2RMBt2r=newTrans2RMB();
Strings=t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum())));
//如果转换过后是一个空串,则不输出屏幕
if(!"".equals(s)){
System.out.println("转换成中文后为:"+s);;
}
System.out.println(" ---------------------------------------------");
}

/**
*从命令行接收一个数,在其中调用checkNum()方法对其进行
*验证,并返回相应的值
*@return如果输入合法,返回输入的这个数
*/
privateStringgetNum(){
Strings=null;
System.out.println("请输入一个数字(精确到小数点后两位):");
//从命令行输入这个浮点数
java.util.Scannerscanner=newjava.util.Scanner(System.in);
s=scanner.next();
//关闭这个Scanner
scanner.close();
//判断用户输入是否合法
//若合法,返回这个值;若非法返回"0"
if(this.checkNum(s)){
returns;
}else{
return"";
}
}

/**
*判断用户输入的数据是否合法,用户只能输入大于零的数字,不能输入其它字符
*@paramsString
*@return如果用户输入数据合法,返回true,否则返回false
*/
privatebooleancheckNum(Strings){
//如果用户输入的数里有非数字字符,则视为非法数据,返回false
try{
floatf=Float.valueOf(s);
//如果这个数小于零则视为非法数据,返回false
if(f<0){
System.out.println("非法数据,请检查!");
returnfalse;
}else{
returntrue;
}
}catch(NumberFormatExceptione){
System.out.println("非法数据,请检查!");
returnfalse;
}
}

/**
*把用户输入的数以小数点为界分割开来,并调用numFormat()方法
*进行相应的中文金额大写形式的转换
*注:传入的这个数应该是经过roundString()方法进行了四舍五入操作的
*@paramsString
*@return转换好的中文金额大写形式的字符串
*/
privateStringsplitNum(Strings){
//如果传入的是空串则继续返回空串
if("".equals(s)){
return"";
}
//以小数点为界分割这个字符串
intindex=s.indexOf(".");
//截取并转换这个数的整数部分
StringintOnly=s.substring(0,index);
Stringpart1=this.numFormat(1,intOnly);
//截取并转换这个数的小数部分
StringsmallOnly=s.substring(index+1);
Stringpart2=this.numFormat(2,smallOnly);
//把转换好了的整数部分和小数部分重新拼凑一个新的字符串
StringnewS=part1+part2;
returnnewS;
}

/**
*对传入的数进行四舍五入操作
*@paramsString从命令行输入的那个数
*@return四舍五入后的新值
*/
privateStringroundString(Strings){
//如果传入的是空串则继续返回空串
if("".equals(s)){
return"";
}
//将这个数转换成double类型,并对其进行四舍五入操作
doubled=Double.parseDouble(s);
//此操作作用在小数点后两位上
d=(d*100+0.5)/100;
//将d进行格式化
s=newjava.text.DecimalFormat("##0.000").format(d);
//以小数点为界分割这个字符串
intindex=s.indexOf(".");
//这个数的整数部分
StringintOnly=s.substring(0,index);
//规定数值的最大长度只能到万亿单位,否则返回"0"
if(intOnly.length()>13){
System.out.println("输入数据过大!(整数部分最多13位!)");
return"";
}
//这个数的小数部分
StringsmallOnly=s.substring(index+1);
//如果小数部分大于两位,只截取小数点后两位
if(smallOnly.length()>2){
StringroundSmall=smallOnly.substring(0,2);
//把整数部分和新截取的小数部分重新拼凑这个字符串
s=intOnly+"."+roundSmall;
}
returns;
}

/**
*把传入的数转换为中文金额大写形式
*@paramflagint标志位,1表示转换整数部分,0表示转换小数部分
*@paramsString要转换的字符串
*@return转换好的带单位的中文金额大写形式
*/
privateStringnumFormat(intflag,Strings){
intsLength=s.length();
//货币大写形式
StringbigLetter[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
//货币单位
Stringunit[]={"元","拾","佰","仟","万",
//拾万位到仟万位
"拾","佰","仟",
//亿位到万亿位
"亿","拾","佰","仟","万"};
Stringsmall[]={"分","角"};
//用来存放转换后的新字符串
StringnewS="";
//逐位替换为中文大写形式
for(inti=0;i<sLength;i++){
if(flag==1){
//转换整数部分为中文大写形式(带单位)
newS=newS+bigLetter[s.charAt(i)-48]+unit[sLength-i-1];
}elseif(flag==2){
//转换小数部分(带单位)
newS=newS+bigLetter[s.charAt(i)-48]+small[sLength-i-1];
}
}
returnnewS;
}

/**
*把已经转换好的中文金额大写形式加以改进,清理这个字
*符串里面多余的零,让这个字符串变得更加可观
*注:传入的这个数应该是经过splitNum()方法进行处理,这个字
*符串应该已经是用中文金额大写形式表示的
*@paramsString已经转换好的字符串
*@return改进后的字符串
*/
privateStringcleanZero(Strings){
//如果传入的是空串则继续返回空串
if("".equals(s)){
return"";
}
//如果用户开始输入了很多0去掉字符串前面多余的'零',使其看上去更符合习惯
while(s.charAt(0)=='零'){
//将字符串中的"零"和它对应的单位去掉
s=s.substring(2);
//如果用户当初输入的时候只输入了0,则只返回一个"零"
if(s.length()==0){
return"零";
}
}
//字符串中存在多个'零'在一起的时候只读出一个'零',并省略多余的单位
/*由于本人对算法的研究太菜了,只能用4个正则表达式去转换了,各位大虾别介意哈...*/
Stringregex1[]={"零仟","零佰","零拾"};
Stringregex2[]={"零亿","零万","零元"};
Stringregex3[]={"亿","万","元"};
Stringregex4[]={"零角","零分"};
//第一轮转换把"零仟",零佰","零拾"等字符串替换成一个"零"
for(inti=0;i<3;i++){
s=s.replaceAll(regex1[i],"零");
}
//第二轮转换考虑"零亿","零万","零元"等情况
//"亿","万","元"这些单位有些情况是不能省的,需要保留下来
for(inti=0;i<3;i++){
//当第一轮转换过后有可能有很多个零叠在一起
//要把很多个重复的零变成一个零
s=s.replaceAll("零零零","零");
s=s.replaceAll("零零","零");
s=s.replaceAll(regex2[i],regex3[i]);
}
//第三轮转换把"零角","零分"字符串省略
for(inti=0;i<2;i++){
s=s.replaceAll(regex4[i],"");
}
//当"万"到"亿"之间全部是"零"的时候,忽略"亿万"单位,只保留一个"亿"
s=s.replaceAll("亿万","亿");
returns;
}
}

阅读全文

与java金额单位相关的资料

热点内容
八零电子书下载txt免费下载 浏览:663
电脑一体机的数据线插口在哪里 浏览:491
手机上如何打开ppt文件怎么打开 浏览:961
u盘中病毒后文件夹不见了 浏览:371
iphone照片图库多个文件夹 浏览:852
怎么用c编程平台 浏览:527
编程里n怎么表示正整数 浏览:391
微信聊天记录存储的文件夹 浏览:590
iphone5s基带版本查询 浏览:548
江阴证件文件翻译多少钱 浏览:316
javaruntime142 浏览:610
word把数字变斜 浏览:372
小米6忘记锁屏密码怎么办啊 浏览:462
北京白领都用什么社交app 浏览:518
政法app哪个好用 浏览:514
房产平台如何推广新网站 浏览:701
u盘导文件总是中断 浏览:995
下载的招标文件打不开是为什么 浏览:356
都市美艳后宫 浏览:435
十部顶级古埃及电影 浏览:107

友情链接