1. 程式人生 > >java BigDecimal 新增千位分隔符,保留幾位小數

java BigDecimal 新增千位分隔符,保留幾位小數

含格式的都是String類的:比如新增千位分隔符的,轉換為百分數格式的

1.使用DecimalFormat類,會返回String型別

import static org.junit.Assert.*;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

import org.junit.Test;

public class BigDecimalTest {

	/** 
	 * 使用DecimalFormat類   返回String型別
	 */
	@Test
	public void BigDecimalFormatTest() {
         	
		//0 一個數字 ; # 一個數字,不包括 0 
		//保留兩位小數,如果不足兩位小數則自動補零  
		DecimalFormat df1 = new DecimalFormat("###0.00") ;  
		df1.setRoundingMode(RoundingMode.HALF_UP); 
		System.out.println(df1.format(124.3));  
		System.out.println(df1.format(124.315));  //費解  沒有四捨五入
		System.out.println(df1.format(124.325));  //費解  實現四捨五入
 	          
		 //保留兩位小數,不足兩位則不補零  
		DecimalFormat df2 = new DecimalFormat("###0.##") ;
		System.out.println(df2.format(124.6));  
		System.out.println(df2.format(124));  
		
		//保留兩位小數,哪裡不足位則補零
 		DecimalFormat df3 = new DecimalFormat("000.00"); 
		System.out.println(df3.format(24));
		
		//新增千位分隔符,保留3位小數,不足的補0
		DecimalFormat df4 = new DecimalFormat("#,##0.000");
		System.out.println(df4.format(new BigDecimal(3613.61)));
		System.out.println(df4.format(new BigDecimal(3613.613)));
		System.out.println(df4.format(new BigDecimal(3613.6135)));
		System.out.println(df4.format(new BigDecimal(3613.6136)));
 
		}

}

2.使用BigDecimal.setScale()方法,會返回BigDecimal型別,但是也可再轉成String型別

import static org.junit.Assert.*;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

import org.junit.Test;

public class BigDecimalTest {

 
	/**
	 * 使用BigDecimal的setScale()方法
	 * 
	 */
	@Test
	   public void setBigDecimalScale(){
		 
	        BigDecimal bd1 = new BigDecimal( 911.911);
	        BigDecimal bd2 = new BigDecimal( 911.91156);
	        bd1 = bd1.setScale(4, BigDecimal.ROUND_HALF_UP);
	        bd2 = bd2.setScale(4, BigDecimal.ROUND_HALF_UP);
	        
	        System.out.println("bd1=="+bd1);
	        System.out.println("bd2=="+bd2);
	        
           //返回String  不足位就補0
	        String str1 = bd1.setScale(4, BigDecimal.ROUND_HALF_UP).toString();
	        System.out.println("str1==="+str1);
	        //返回String  不足位也不補0
	        String str2 = new String(""+bd1.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
	        System.out.println("str1==="+str2);

 	   }
	
}

import static org.junit.Assert.*;

import java.math.BigDecimal;
import java.text.DecimalFormat;

import org.junit.Test;

public class BigDecimalTest{

	@Test
	public void percentTest(){	
		//BigDecimal 轉為百分比格式
		DecimalFormat df = new DecimalFormat("0.00%");  
		BigDecimal d=new BigDecimal(0.666);
		String percent=df.format(d);
		System.out.println("percent=="+percent);
		
		//百分比格式轉為BigDecimal 
		percent=percent.replace("%","");
		Float f = Float.valueOf(percent) / 100;
		BigDecimal decimal = new BigDecimal(f);
		System.out.println(decimal);//-0.66600000858306884765625
	}
	
}

4.兩個BigDecimal比較大小用compareTo()方法,比較結果有-1,0,1,分別表示小於,等於,大於

import static org.junit.Assert.*;

import java.math.BigDecimal;

import org.junit.Test;

public class BigDecimalTest {

	@Test
	  public void testEqual(){
		  BigDecimal value1 = new BigDecimal(3.14);
		  BigDecimal value2 = new BigDecimal(3.20);
		  if(value1.compareTo(value2) == 0){
			  System.out.println("value1 = value2");
		  }
		  if(value1.compareTo(value2) == 1){
			  System.out.println("value1 > value2");
		  }
		  if(value1.compareTo(value2) == -1){
			  System.out.println("value1 < value2");
		  }
		  
	  }
	
}

相關推薦

java BigDecimal 新增分隔符保留小數

含格式的都是String類的:比如新增千位分隔符的,轉換為百分數格式的1.使用DecimalFormat類,會返回String型別import static org.junit.Assert.*; import java.math.BigDecimal; import ja

js 數字格式化(保留小數四捨五入)

function formatNumber(num,cent,isThousand) { num = num.toString().replace(/\$|\,/g,'');

保留小數點保留2小數如:2會在2後面補上00.即2.00

function toDecimal2(x) {       var f = parseFloat(x);       if (isNaN(f)) {   

JS-滑鼠移出input保留小數新增分隔符

程式碼如下: 滑鼠移出input後保留兩位小數,新增千分位分隔符<input class="credit" type="text" value="0.00"/> <script type="text/javascript"> //千分位的分隔符 function t

Java:對double值進行四捨五入保留小數種方法

1. 功能 將程式中的double值精確到小數點後兩位。可以四捨五入,也可以直接截斷。 比如:輸入12345.6789,輸出可以是12345.68也可以是12345.67。至於是否需要四捨五入,可以通過引數來決定(RoundingMode.UP/RoundingMode.DOWN等引數)。 2. 實現程式碼

java double演算法保留固定小數

public static void main(String[] args) { double a = 26765; int b = 45676; double c = a/b; double d = a/b/1.000; double e = a/1000.00; String result = Stri

關於java格式化資料保留小數不精準的問題

首先,網上有傳的幾種格式化的方法,如下 java保留兩位小數問題: 方式一: 四捨五入   double   f   =   111231.5585;   BigDecimal   b   =

Java:對double值進行四舍五入保留小數種方法

ner 分享圖片 什麽 text 5.6 ces 技術 git app 轉: 1. 功能 將程序中的double值精確到小數點後兩位。可以四舍五入,也可以直接截斷。 比如:輸入12345.6789,輸出可以是12345.68也可以是12345.67。至於

Java-小技巧-005-double類型保留小數4種方法

bsp 轉換 args clear cal instance double static ati 4種方法,都是四舍五入,例: import java.math.BigDecimal; import java.text.Decimal

獲取特定範圍內的隨機數保留2

double型別保留小數位 //取值範圍為[0.7,1) //區間最大值 int max = 1 //區間最小值 int min = 0.7 //保留的小數位 int scale = 2 num = new Bigdecimal(Math.random() * (max - min)

ACMNO.12有一分數序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出這個數列的前N項之和保留小數。 輸入 N 輸出 數列前N項和 樣例輸入 10

題目描述 有一分數序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出這個數列的前N項之和,保留兩位小數。 輸入 N 輸出 數列前N項和 樣例輸入 10 樣例輸出 16.48 來源/分類 C語言 題目

float轉16進 16進制轉float(java

直接上程式碼,有需求的朋也可以檢視下: package com.sondon.dev_soceket.test; /** * @Project : 硬體通訊 * @Package : com

angular 輸入框數字保留小數點

網上查到一個關於千分位的指令,我稍微做了點完善,通用指令程式碼 myApp.directive('price', function($parse) { return { link: function (scope, elem

java int型別轉換成String 不足10 在前面補0

String.format("%010d", 25); 0代表前面要補的字元 10代表字串長度 d表示引數為整數型別 String s = "Hello World!"; int i =

L1-040. 最佳情侶身高差【附C++如何保留小數可設定為對一個物件或多個物件生效】

專家通過多組情侶研究資料發現,最佳的情侶身高差遵循著一個公式:(女方的身高)×1.09=(男方的身高)。如果符合,你倆的身高差不管是牽手、擁抱、接吻,都是最和諧的差度。下面就請你寫個程式,為任意一位使用者計算他/她的情侶的最佳身高。輸入格式:輸入第一行給出正整數N(<=

sqlserver資料庫中如果對數值型的欄進行小數點保留如果是小於1的數前面的0消失解決方案

sqlserver資料庫中數值型保留兩位小數的方式: 1. 使用 Round() 函式,如 Round(@num,2)  引數 2 表示 保留兩位有效數字。 2. 更好的方法是使用 Convert(decimal(18,2),@num) 實現轉換,decimal(18,2

如何去掉BigDecimal得科學計數法和保留7小數問題關

<span style="background-color: rgb(255, 255, 255);"><span style="font-size:18px;"><s

小程式中過濾器功能保留小數

1. 首先建立filter 資料夾 2. wxs 程式碼 var numFr = { getNum: function (x) { var f = parseFloat(x); if (isNaN(f)) { retu

Java中double值進行四捨五入並保留小數種方法

1. 功能將程式中的double值精確到小數點後兩位。可以四捨五入,也可以直接截斷。比如:輸入12345.6789,輸出可以是12345.68也可以是12345.67。至於是否需要四捨五入,可以通過引數來決定(RoundingMode.UP/RoundingMode.DOWN

PHP中數字格式化保留2或指定位數程式碼

/** *    數字格式化 *    @param $num 要格式劃的數字 *    @param $precision 保留小數點位數 */ function reverse_format($num,$precision=2) {     $_num = round(