當前位置:首頁 » 數字幣問答 » JAVA中如何將數字轉換為貨幣

JAVA中如何將數字轉換為貨幣

發布時間: 2021-08-23 19:46:43

Ⅰ JAVA將數字轉表示成相應的錢

public class ShuceUtils {
/**
* 將數字轉換成中文表示
* @param smallmoney double
* @return String
*/
public static String TranslateMoneyToChn(double smallmoney) {
String value = String.valueOf(smallmoney);
if (null == value || "".equals(value.trim()))
return "零";

String strCheck, strArr, strFen, strDW, strNum, strBig, strNow;
double d = 0;
try {
d = Double.parseDouble(value);
}
catch (Exception e) {
return "數據" + value + "非法!";
}

strCheck = value + ".";
int dot = strCheck.indexOf(".");
if (dot > 12) {
return "數據" + value + "過大,無法處理!";
}

try {
int i = 0;
strBig = "";
strDW = "";
strNum = "";
long intFen = Math.round(d * 100);
strFen = String.valueOf(intFen);
int lenIntFen = strFen.length();
while (lenIntFen != 0) {
i++;
switch (i) {
case 1:
strDW = "分";
break;
case 2:
strDW = "角";
break;
case 3:
strDW = "圓";
break;
case 4:
strDW = "拾";
break;
case 5:
strDW = "佰";
break;
case 6:
strDW = "仟";
break;
case 7:
strDW = "萬";
break;
case 8:
strDW = "拾";
break;
case 9:
strDW = "佰";
break;
case 10:
strDW = "仟";
break;
case 11:
strDW = "億";
break;
case 12:
strDW = "拾";
break;
case 13:
strDW = "佰";
break;
case 14:
strDW = "仟";
break;
}
switch (strFen.charAt(lenIntFen - 1)) { //選擇數字
case '1':
strNum = "壹";
break;
case '2':
strNum = "貳";
break;
case '3':
strNum = "叄";
break;
case '4':
strNum = "肆";
break;
case '5':
strNum = "伍";
break;
case '6':
strNum = "陸";
break;
case '7':
strNum = "柒";
break;
case '8':
strNum = "捌";
break;
case '9':
strNum = "玖";
break;
case '0':
strNum = "零";
break;
}
//處理特殊情況
strNow = strBig;
//分為零時的情況
if ( (i == 1) && (strFen.charAt(lenIntFen - 1) == '0'))
strBig = "整";
//角為零時的情況
else if ( (i == 2) && (strFen.charAt(lenIntFen - 1) == '0')) { //角分同時為零時的情況
if (!strBig.equals("整"))
strBig = "零" + strBig;
}
//元為零的情況
else if ( (i == 3) && (strFen.charAt(lenIntFen - 1) == '0'))
strBig = "圓" + strBig;
//拾-仟中一位為零且其前一位(元以上)不為零的情況時補零
else if ( (i < 7) && (i > 3) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) != '零') && (strNow.charAt(0) != '圓'))
strBig = "零" + strBig;
//拾-仟中一位為零且其前一位(元以上)也為零的情況時跨過
else if ( (i < 7) && (i > 3) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '零')) {}
//拾-仟中一位為零且其前一位是元且為零的情況時跨過
else if ( (i < 7) && (i > 3) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '圓')) {}
//當萬為零時必須補上萬字
else if ( (i == 7) && (strFen.charAt(lenIntFen - 1) == '0'))
strBig = "萬" + strBig;
//拾萬-仟萬中一位為零且其前一位(萬以上)不為零的情況時補零
else if ( (i < 11) && (i > 7) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) != '零') && (strNow.charAt(0) != '萬'))
strBig = "零" + strBig;
//拾萬-仟萬中一位為零且其前一位(萬以上)也為零的情況時跨過
else if ( (i < 11) && (i > 7) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '萬')) {}
//拾萬-仟萬中一位為零且其前一位為萬位且為零的情況時跨過
else if ( (i < 11) && (i > 7) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '零')) {}
//萬位為零且存在仟位和十萬以上時,在萬仟間補零
else if ( (i < 11) && (i > 8) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '萬') && (strNow.charAt(2) == '仟'))
strBig = strNum + strDW + "萬零" + strBig.substring(1, strBig.length());
//單獨處理億位
else if (i == 11) {
//億位為零且萬全為零存在仟位時,去掉萬補為零
if ( (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '萬') && (strNow.charAt(2) == '仟'))
strBig = "億" + "零" + strBig.substring(1, strBig.length());
//億位為零且萬全為零不存在仟位時,去掉萬
else if ( (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '萬') && (strNow.charAt(2) != '仟'))
strBig = "億" + strBig.substring(1, strBig.length());
//億位不為零且萬全為零存在仟位時,去掉萬補為零
else if ( (strNow.charAt(0) == '萬') && (strNow.charAt(2) == '仟'))
strBig = strNum + strDW + "零" + strBig.substring(1, strBig.length());
//億位不為零且萬全為零不存在仟位時,去掉萬
else if ( (strNow.charAt(0) == '萬') && (strNow.charAt(2) != '仟'))
strBig = strNum + strDW + strBig.substring(1, strBig.length());
//其他正常情況
else
strBig = strNum + strDW + strBig;
}
//拾億-仟億中一位為零且其前一位(億以上)不為零的情況時補零
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) != '零') && (strNow.charAt(0) != '億'))
strBig = "零" + strBig;
//拾億-仟億中一位為零且其前一位(億以上)也為零的情況時跨過
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '億')) {}
//拾億-仟億中一位為零且其前一位為億位且為零的情況時跨過
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '零')) {}
//億位為零且不存在仟萬位和十億以上時去掉上次寫入的零
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) != '0') &&
(strNow.charAt(0) == '零') && (strNow.charAt(1) == '億') &&
(strNow.charAt(3) != '仟'))
strBig = strNum + strDW + strBig.substring(1, strBig.length());
//億位為零且存在仟萬位和十億以上時,在億仟萬間補零
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) != '0') &&
(strNow.charAt(0) == '零') && (strNow.charAt(1) == '億') &&
(strNow.charAt(3) == '仟'))
strBig = strNum + strDW + "億零" + strBig.substring(2, strBig.length());
else
strBig = strNum + strDW + strBig;
strFen = strFen.substring(0, lenIntFen - 1);
lenIntFen--;
}
return strBig;
}
catch (Exception e) {
return "";
}
}

public static void main(String[] args){
System.out.println(ShuceUtils.TranslateMoneyToChn(123450000));
}
}

Ⅱ java中如何將十進制數字轉化成二進制

如果表達小於2^31-1的正數代碼如下:

public void binaryToDecimal(int n){

int t = 0; //用來記錄位數

int bin = 0; //用來記錄最後的二進制數

int r = 0; //用來存儲余數

while(n != 0){

r = n % 2;

n = n / 2;

bin += r * Math().pow(10,t);

t++;

}

System.out.println(bin);

}

使用字元串的拼接(+)來實現大於2^31-1的數,代碼如下:

public void binaryToDecimal(int n){

String str = "";

while(n!=0){

str = n%2+str;

n = n/2;

}

System.out.println(str);

}

可以右移後再與0x01進行&運算得到第一位的數字判斷判斷它的第幾位上是0,第幾位上是1,代碼如下:

class ByteMove

{

public static void main(String[] args)

{

int i = 7;

move(i);

}

static void move(int num){

for(int i= 0;i<6;i++){

System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));

}

}

}

Ⅲ [JAVA]求一個將數字字元串轉換成人民幣讀法的方法();

上午也看到有人問這個,不知道和Lz是不是同一個人~
我直接復制好了,那邊的那個是我寫的,要是有漏洞還希望可以積極指出,我會盡快完善:
package com.ufotable.test;

import java.math.BigDecimal;
public class Test8 {
public enum RMB{

角,分,元,十,百,千,萬W,十萬,百萬,千萬,億Y,十億,百億,千億,萬W億,十萬億,百萬億,千萬億,兆Z,十兆,百兆,千兆,萬W兆,十萬兆,百萬兆,千萬兆,億Y兆
} public enum NUM{
零,壹,貳,叄,肆,伍,陸,柒,玐,玖
}
static String read(Integer rmb){
return read(rmb.toString());
}

static String read(double rmb){
return read(new BigDecimal(rmb).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
}
static String read(Long rmb){
return read(rmb.toString());
}
static String read(String rmb){
String str1=rmb.replaceAll("\\.\\d*", ""),
str2=rmb.replaceAll("[-]|\\d+\\.", ""),
str3="";
if(rmb.charAt(0)=='-'){str1=str1.substring(1);str3="負";}
int i = 0;
while(i<str1.length()){
int j = str1.length()-i+1;
int c=(str1.charAt(i++)-'0')%9;
str3+=NUM.values()[c].name()+
RMB.values()[j];
}
int j=0;
while(j<str2.length()&&j<2){
int c=(str2.charAt(j++)-'0')%9;
str3+=NUM.values()[c].name()+RMB.values()[j-1];
}
str3=str3.replaceAll("萬", "").replaceAll("億", "").replaceAll("兆", "").
replaceAll("零{1}[兆,億,萬,千,百,十,角]{1}", "零").
replaceAll("零+", "零").
replaceAll("W", "萬").
replaceAll("Y", "億").
replaceAll("Z", "兆").
replaceAll("零億", "億").
replaceAll("零萬", "萬").
replaceAll("零兆", "兆").
replaceAll("零元|元零", "元").
replaceAll("零分|元分", "元").
replaceAll("角元", "角");
return str3;
}
public static void main(String[] args) {
System.out.println(read(2411004444500203.405));

}

}

輸出結果:
貳千肆百壹十壹萬零肆十肆億肆千肆百伍十萬零貳百零叄元伍角

Ⅳ java中怎樣將一個字元串中的數字轉換成整型

自己寫一個方法吧,把字元串中不是數字的都去掉,留下數字的組成一個新字元串,然後把這個字元串轉成int類型。

Ⅳ excel表格里如何將數字轉換成貨幣數字

將數字轉換為貨幣數字,其實就是將數值單元格格式設置為貨幣格式。依次步驟為:

  1. 選中需要設置的單元格,滑鼠右擊選擇單元格格式

  2. 出現單元格格式對話框,點擊數字選項卡(一般默認數字選項卡激活)

  3. 點擊會計專用,按自己的需求選擇貨幣符號以及小數點位數,然後確定

如下圖具體錄制的操作:

Ⅵ Java中,怎麼將一段浮點數值轉換成人民幣格式例如將12004567.866轉換成 :壹千貳百萬

直接通過以下介面類方法實現即可:importjava.math.BigDecimal;/***金額工具類**@authorzn**@Date2013-2-1*@[email protected]*/publicclassMoneyUtil{privatestaticfinalintDFT_SCALE=2;/**大寫數字*/privatestaticfinalString[]NUMBERS={"零","壹","貳","叄","肆","伍","陸","柒","捌","玖"};/**整數部分的單位*/privatestaticfinalString[]IUNIT={"元","拾","佰","仟","萬","拾","佰","仟","億","拾","佰","仟","萬","拾","佰","仟"};/**小數部分的單位*/privatestaticfinalString[]DUNIT={"角","分","厘"};/***得到大寫金額。*/publicstaticStringtoChinese(Stringstr){str=str.replaceAll(",","");//去掉","StringintegerStr;//整數部分數字StringdecimalStr;//小數部分數字//初始化:分離整數部分和小數部分if(str.indexOf(".")>0){integerStr=str.substring(0,str.indexOf("."));decimalStr=str.substring(str.indexOf(".")+1);}elseif(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+":超出處理能力");returnstr;}int[]integers=toArray(integerStr);//整數部分數字booleanisMust5=isMust5(integerStr);//設置萬單位int[]decimals=toArray(decimalStr);//小數部分數字returngetChineseInteger(integers,isMust5)+getChineseDecimal(decimals);}/***整數部分和小數部分轉換為數組,從高位至低位*/privatestaticint[]toArray(Stringnumber){int[]array=newint[number.length()];for(inti=0;i1&&integers[i+1]!=0)key+=NUMBERS[0];}chineseInteger.append(integers[i]==0?key:(NUMBERS[integers[i]]+IUNIT[length-i-1]));}returnchineseInteger.toString();}/***得到中文金額的小數部分。*/(int[]decimals){StringBufferchineseDecimal=newStringBuffer("");for(inti=0;i4){StringsubInteger="";if(length>8){//TODO12-9-17//取得從低位數,第5到第8位的字串subInteger=integerStr.substring(length-8,length-4);}else{subInteger=integerStr.substring(0,length-4);}returnInteger.parseInt(subInteger)>0;}else{returnfalse;}}/***BigDecimal相乘,四捨五入保留0位**@parama*@paramb*@returna*b*/publicstaticBigDecimalmutiply(Stringa,Stringb,introundingMode){BigDecimalbd=newBigDecimal(a);returnbd.multiply(newBigDecimal(b)).setScale(DFT_SCALE,roundingMode);}/***BigDecimal相除,四捨五入保留兩位**@parama*@paramb*@returna/b*/publicstaticBigDecimaldiv(Stringa,Stringb,introundingMode){BigDecimaldecimal1=newBigDecimal(a);BigDecimaldecimal2=newBigDecimal(b);returndecimal1.divide(decimal2,DFT_SCALE,roundingMode);}/***BigDecimal相加,四捨五入保留兩位**@parama*@paramb*@returna+b*/publicstaticBigDecimalsum(Stringa,Stringb,introundingMode){BigDecimaldecimal1=newBigDecimal(a);BigDecimaldecimal2=newBigDecimal(b);//DecimalFormatformat=newDecimalFormat("#0.00");returndecimal1.add(decimal2).setScale(DFT_SCALE,roundingMode);}/***BigDecimal相減,四捨五入保留兩位**@parama*@paramb*@returna+b*/publicstaticBigDecimalsub(Stringa,Stringb,introundingMode){BigDecimaldecimal1=newBigDecimal(a);BigDecimaldecimal2=newBigDecimal(b);//DecimalFormatformat=newDecimalFormat("#0.00");returndecimal1.subtract(decimal2).setScale(DFT_SCALE,roundingMode);}/***100.00為10000**@parama*@return*/publicstaticBigDecimalformat(Stringa,introundingMode){returnnewBigDecimal(a).multiply(newBigDecimal(100)).setScale(0,roundingMode);}publicstaticvoidmain(String[]args){Stringnumber="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將阿拉伯數字轉換為金額

你好 就剩一個類型轉換就好了 比如
Double cost=(double)5;

Ⅷ Java中怎麼把int型的數字轉換成char型的數字

java將int類型的數字轉換成char型,主要是通過強制類型轉換,如下代碼:

publicclassInt2CharDemo{publicstaticvoidmain(String[]args){//將int類型數字8轉換為char類型數字8
intnum1=8;
charch1=(char)(num1+48);
System.out.println("ch1="+ch1);//將char類型數字8轉換為int類型數字8
//方法一:
Characterch2='8';//char是基本數據類型,Character是其包裝類型。
intnum2=Integer.parseInt(ch2.toString());
System.out.println("num2="+num2);
//方法二:
charch3='8';
intnum3=ch3-48;
System.out.println("num3="+num3);}
}

Ⅸ Java 將數字格式化為貨幣字元竄。。。下面這個程序應該怎麼改!求高手!!

這里不對:Number number=new Number(System.in);

Number是一個抽象類,不能被實例化的 。

還有,就沒有NumberFormat.FULL這個屬性

Ⅹ 在java里,如何將double類型的數字轉換成貨幣那種形式,數字是用逗號分開的那種

Format fm1=new DecimalFormat("#,###.00");
double num1=12345.678;
fm1.format(num1);
可以自己在程序里試試哈。

熱點內容
收到假eth幣 發布:2025-10-20 08:58:16 瀏覽:973
暗黑破壞神2eth打孔 發布:2025-10-20 08:42:58 瀏覽:105
BTC和CBT是一樣的嗎 發布:2025-10-20 08:42:57 瀏覽:233
華碩trx40Pro供電 發布:2025-10-20 08:33:26 瀏覽:432
曬人民幣編號的朋友圈 發布:2025-10-20 08:25:32 瀏覽:687
doge格式 發布:2025-10-20 08:02:00 瀏覽:382
以太坊會爆發嗎 發布:2025-10-20 08:01:59 瀏覽:772
一台比特幣礦機的功率 發布:2025-10-20 07:39:24 瀏覽:925
trx輔助帶 發布:2025-10-20 07:35:29 瀏覽:48
比特幣哈希值有多少位 發布:2025-10-20 07:31:20 瀏覽:633