當前位置:首頁 » 數字幣問答 » java怎麼將一串數字轉為貨幣形式

java怎麼將一串數字轉為貨幣形式

發布時間: 2021-04-21 17:25:52

⑴ WORD中數字轉換貨幣形式,如何操作

  1. 游標在數字前,點插入;

  2. 選擇貨幣符號,比如¥,然後點擊插入按鈕;

  3. 在該數字後面加上.00就可以了。

⑵ 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 將數字格式化為貨幣字元竄。。。下面這個程序應該怎麼改!求高手!!

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

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

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

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

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

⑸ 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如何把一個數如:40000,變成:40,000.00這樣的格式啊

使用java.text.DecimalFormat類.

DecimalFormat df = new DecimalFormat("0,000.00");

具體參數可以參見API, 這里提供一部分

符號 位置 本地化? 含義

0 數字 是 阿拉伯數字
# 數字字 是 阿拉伯數字,如果不存在則顯示為 0
. 數字 是 小數分隔符或貨幣小數分隔符
- 數字 是 減號
, 數字 是 分組分隔符
E 數字 是 分隔科學計數法中的尾數和指數。在前綴或後綴中無需加引號。
; 子模式邊界 是 分隔正數和負數子模式
% 前綴或後綴 是 乘以 100 並顯示為百分數
\u2030 前綴或後綴 是 乘以 1000 並顯示為千分數
¤ (\u00A4) 前綴或後綴 否 貨幣記號,由貨幣符號替換。如果兩個同時出現,則用國際貨幣符號替換。如果出現在某個模式中,則使用貨幣小數分隔符,而不使用小數分隔符。
' 前綴或後綴 否 用於在前綴或或後綴中為特殊字元加引號,例如 "'#'#" 將 123 格式化為 "#123"。要創建單引號本身,請連續使用兩個單引號:"# o''clock"。

⑺ 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方法是具體的調用。

⑻ 如何實現實時輸入數字自動轉換為貨幣形式

呵呵,這個簡單,用JavaScript的onfocus和onblur事件就可以了,前者是焦點集中事件,後者是焦點離開事件,代碼如下:

<html>
<head>
<title>Made By tjoy7d</title>
</head>
<SCRIPT LANGUAGE="JavaScript">
<!--
//得到貨幣形式的數值
function getCurrency(s){
res = Number(s.value).toFixed(2)
return res
}
//得到兩個數的乘積
function getMul(){
res = Number(a.value)*Number(b.value)
res = Number(res).toFixed(2)
return res
}
//-->
</SCRIPT>
數量: <input id=a type=text><br>
單價: <input id=b type=text onblur="this.value=getCurrency(b)"><br>
乘積結果: <input id=c type=text onfocus="this.value=getMul()"><br>

可能不是很符合你的要求,不過你還可以改進一下:)

⑼ C語言將一串數字字元12345678變成貨幣形式$12,345,678

辦法很多,提供一個比較低級的。注意原字串空間要大到能放下修改後的字串。

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"string.h"
intmain(void){
chara[20]="12345678",t[20],ln;
for(ln=strlen(a)-3;ln>0;ln-=3){
strcpy(a+ln+1,strcpy(t,a+ln));
a[ln]=',';
}
strcpy(a+1,strcpy(t,a));
*a='$';
printf("%s ",a);
return0;
}

⑽ 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));

}

}

}

熱點內容
暴風礦機挖的什麼幣 發布:2025-06-28 16:21:59 瀏覽:692
比特幣合同糾紛律師咨詢電話 發布:2025-06-28 16:17:27 瀏覽:230
區塊鏈應用技術基礎第四版答案 發布:2025-06-28 16:08:48 瀏覽:288
挖礦收益以太坊 發布:2025-06-28 16:02:56 瀏覽:726
trx全身吊起 發布:2025-06-28 15:33:53 瀏覽:99
區塊鏈的確認讓股市大漲 發布:2025-06-28 15:28:57 瀏覽:665
200w幣圈怎麼賺錢 發布:2025-06-28 15:12:24 瀏覽:882
以太坊鏈上數據怎麼查詢 發布:2025-06-28 14:40:06 瀏覽:520
區塊鏈技術的名詞解釋 發布:2025-06-28 14:35:04 瀏覽:500
幣圈趙長鵬最新消息 發布:2025-06-28 14:33:05 瀏覽:173