當前位置:首頁 » 數字幣問答 » java貨幣數字的精確處理

java貨幣數字的精確處理

發布時間: 2021-07-17 11:39:25

A. JAVA中如何精確進行大數計算

使用Java.math包中的 BigInteger, BigDecimal這兩個類。 這兩個類可以處理包含任意長度數字序列的數值。BigInteger類實現任意精度的整數運算,BigDicimal實現任意精度的浮點數運算。 語出Core Java

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

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

C. java開發中,一般涉及到金錢計算的時候用什麼數據類型

  • 回答: 一般使用 java.math.BigDecimal 類來處理需要高精度的計算

  • 原因: 1.浮點數(double,flot)因為精度問題, 容易出現不精確的計算結果

    2.浮點數范圍比較小

    BigDecimal 范圍大, 並且比他們精確

  • 參考代碼

importjava.math.BigDecimal;

publicclassDemo{
publicstaticvoidmain(String[]args){
//浮點數,存在精度問題
doubled1=0.19*6;
System.out.println(d1);//1.1400000000000001
//採用BigDecimal來解決精度問題
BigDecimalbd1=newBigDecimal("0.19");
BigDecimalbd2=newBigDecimal("6");
BigDecimalbd3=bd1.multiply(bd2);
System.out.println(bd3);//1.14
}
}

輸出

1.1400000000000001
1.14

D. 在java中怎麼對一個數字取整

在java中對一個數字取整方法很多

  1. 向上取整Math.ceil();

舉例:Math.ceil(11.4)=12; Math.ceil(-11.6)=-11;

2.向下取整Math.floor();

舉例:Math.floor(11.7)=11;Math.floor(-11.2)=-12;

3.四捨五入Math.round();

顧名思義,四捨五入後取整,其演算法為Math.round(x+0.5),即原來的數字加上0.5後再想下取整即可。

舉例:Math.round(11.5)=12;

Math.round(-11.5)=-11;

E. java如何進行精確運算

/*
* 看程序寫結果:結果和我們想的有一點點不一樣,這是因為float類型的數據存儲和整數不一樣導致的。它們大部分的時候,都是帶有有效數字位。
*
* 由於在運算的時候,float類型和double很容易丟失精度,演示案例。所以,為了能精確的表示、計算浮點數,Java提供了BigDecimal
*
* BigDecimal類:不可變的、任意精度的有符號十進制數,可以解決數據丟失問題。
*/

import java.math.BigDecimal;

/*
* 構造方法:
* public BigDecimal(String val)
*
* public BigDecimal add(BigDecimal augend)
* public BigDecimal subtract(BigDecimal subtrahend)
* public BigDecimal multiply(BigDecimal multiplicand)
* public BigDecimal divide(BigDecimal divisor)
* public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,幾位小數,如何舍取
*/
public class BigDecimalDemo {
public static void main(String[] args) {
// System.out.println(0.09 + 0.01);
// System.out.println(1.0 - 0.32);
// System.out.println(1.015 * 100);
// System.out.println(1.301 / 100);

BigDecimal bd1 = new BigDecimal("0.09");
BigDecimal bd2 = new BigDecimal("0.01");
System.out.println("add:" + bd1.add(bd2));
System.out.println("-------------------");

BigDecimal bd3 = new BigDecimal("1.0");
BigDecimal bd4 = new BigDecimal("0.32");
System.out.println("subtract:" + bd3.subtract(bd4));
System.out.println("-------------------");

BigDecimal bd5 = new BigDecimal("1.015");
BigDecimal bd6 = new BigDecimal("100");
System.out.println("multiply:" + bd5.multiply(bd6));
System.out.println("-------------------");

BigDecimal bd7 = new BigDecimal("1.301");
BigDecimal bd8 = new BigDecimal("100");
System.out.println("divide:" + bd7.divide(bd8));
System.out.println("divide:"
+ bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));
System.out.println("divide:"
+ bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));
}
}

F. java怎麼輸出貨幣符號

java輸出貨比符號測試方法:
importjava.text.NumberFormat;

importjava.util.Locale;

publicclassFormatTest{

publicstaticvoidmain(Stringargs[]){

//不使用格式化輸出數

doubled=10.0/3.0;

System.out.println("無格式化輸出:"+d);

//使用本地默認格式輸出數

NumberFormatnumberFormat=NumberFormat.getNumberInstance();

//numberFormat.setMaximumFractionDigits(4);

//numberFormat.setMinimumIntegerDigits(6);

StringnumberString=numberFormat.format(d);

System.out.println("本地默認格式輸出數:"+numberString);

//使用本地默認格式輸出貨幣值

NumberFormatcurrencyFormat=NumberFormat.getCurrencyInstance();

System.out.println("本地默認格式輸出貨幣值:"+currencyFormat.format(d));

//使用本地默認格式輸出百分數

NumberFormatpercentFormat=NumberFormat.getPercentInstance();

System.out.println("本地默認格式輸出百分數:"+percentFormat.format(d));

//在不同的國家和地區數字表示的格式也有區別。如德國

//使用德國的格式化輸出數

NumberFormatnumberFormatG=NumberFormat

.getNumberInstance(Locale.GERMANY);

System.out.println("德國數字輸出形式:"+numberFormatG.format(d));

//使用德國貨幣輸出形式

NumberFormatcurrencyFormatG=NumberFormat

.getCurrencyInstance(Locale.GERMANY);

System.out.println("德國貨幣輸出形式:"+currencyFormatG.format(d));

//使用美國貨幣輸出形式

NumberFormatcurrencyFormatA=NumberFormat

.getCurrencyInstance(Locale.US);

System.out.println("美國貨幣輸出形式:"+currencyFormatA.format(d));

//使用德國百分數輸出形式

NumberFormatpercentFormatG=NumberFormat

.getPercentInstance(Locale.GERMANY);

System.out.println("德國百分數輸出形式:"+percentFormatG.format(d));

System.exit(0);

}

}

G. 請問java怎麼提取一個字元串中的數字(含小數點)。例如:金額為12345.78 ,結果為12345.78

public static void main(String[] args)
{
String a = "a1v2.3s5";
char[] b = a.toCharArray();
String result = "";
for (int i = 0; i < b.length; i++)
{
if (("0123456789.").indexOf(b[i] + "") != -1)
{
result += b[i];
}
}
System.out.println(result);
}
把字母替換成漢字一樣的。
public static void main(String[] args)
{
String a = "金額為12.35";
char[] b = a.toCharArray();
String result = "";
for (int i = 0; i < b.length; i++)
{
if (("0123456789.").indexOf(b[i] + "") != -1)
{
result += b[i];
}
}
System.out.println(result);
}

H. JAVA計算時實現數字計算結果高精度

這個程序滿足你的要求吧

public class BigNumber {
public static int[] add(int[] a, int[] b) {
int carry = 0;
int[] c = new int[a.length];
for(int i = a.length - 1; i >= 0; i--) {
c[i] = a[i] + b[i] + carry;
if(c[i] < 10000)
carry = 0;
else { // 進位

c[i] = c[i] - 10000;
carry = 1;
}
}
return c;
}
public static int[] sub(int[] a, int[] b) {
int borrow = 0;
int[] c = new int[a.length];
for(int i = a.length - 1; i >= 0; i--) {
c[i] = a[i] - b[i] - borrow;
if(c[i] >= 0)
borrow = 0;
else { // 借位
c[i] = c[i] + 10000;
borrow = 1;
}
}
return c;
}
public static int[] mul(int[] a, int b) { // b 為乘數
int carry = 0;
int[] c = new int[a.length];
for(int i = a.length - 1; i >=0; i--) {
int tmp = a[i] * b + carry;
c[i] = tmp % 10000;
carry = tmp / 10000;
}
return c;
}
public static int[] div(int[] a, int b) { // b 為除數
int remain = 0;
int[] c = new int[a.length];
for(int i = 0; i < a.length; i++) {
int tmp = a[i] + remain;
c[i] = tmp / b;
remain = (tmp % b) * 10000;
}
return c;
}
public static void main(String[] args) {
int[] a = {1234, 5678, 9910, 1923, 1124};
int[] b = {1234, 5678, 9910, 1923, 1124};
int[] c = BigNumber.add(a, b);
for(int i = 0; i < c.length; i++) {
System.out.print(c[i]);
}
System.out.println();
}
}

I. 在java中怎麼對一個數字取整

public class EXC {
public static void main(String[] args) {
//如果是將 一個 float或double類型的小數 轉換為整數 如下:
//利用java的強制類型轉換規則
double d = 12.3;
int i = (int)d;
System.out.println(i);

//如果是將一個表示小數的 字元串轉換為整數 如下:
//利用Integer包裝類
String s = "12.3";// 或12.3f
i = Integer.parseInt(s.split("\\.")[0]);
System.out.println(i);

}
}

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

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

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

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

熱點內容
區塊鏈貓咪生下來的貓歸誰 發布:2025-06-27 14:59:24 瀏覽:579
以太坊價格漲跌受什麼影響 發布:2025-06-27 14:56:08 瀏覽:650
區塊鏈中的智能合約是指什麼 發布:2025-06-27 14:35:51 瀏覽:129
比特幣開采什麼意思 發布:2025-06-27 14:28:26 瀏覽:265
幣圈dex有哪些幣種 發布:2025-06-27 14:06:12 瀏覽:950
區塊鏈cbt騙局 發布:2025-06-27 14:05:22 瀏覽:602
自己給自己發比特幣勒索郵件 發布:2025-06-27 13:49:11 瀏覽:113
btc區塊高度500000 發布:2025-06-27 13:36:06 瀏覽:969
vertcoin數字貨幣 發布:2025-06-27 12:56:53 瀏覽:496
tether公司購買usdt驗證費 發布:2025-06-27 12:51:53 瀏覽:882