1. 程式人生 > >Android double保留兩位小數:擷取 和 四捨五入

Android double保留兩位小數:擷取 和 四捨五入

方式一:

BigDecimal.setScale()方法用於格式化小數點 setScale(2);//表示保留2位小數,預設用四捨五入方式 
setScale(2,BigDecimal.ROUND_DOWN);//直接刪除多餘的小數位  11.116約=11.11
setScale(2,BigDecimal.ROUND_UP);//臨近位非零,則直接進位;臨近位為零,不進位。11.114約=11.12
setScale(2,BigDecimal.ROUND_HALF_UP);//四捨五入 2.335約=2.33,2.3351約=2.34
setScaler(2,BigDecimal.ROUND_HALF_DOWN);//
四捨五入;2.335約=2.33,2.3351約=2.34,11.117約11.12
:原因是,計算機解析一個浮點資料時,和原始資料有偏差,如: 2.335  =2.33499999999999996447286321199499070644378662109375; 2.3350=2.33499999999999996447286321199499070644378662109375; 2.3351=2.335100000000000175504055732744745910167694091796875 疑問:ROUND_HALF_UP和ROUND_HALF_DOWN的差別? 註釋: 1: scale指的是資料的小數點後的位數。比如123.456則scale
就是3.
scale()是BigDecimal類中的方法。
比如:BigDecimal b = new BigDecimal("123.456");
b.scale(),返回的就是3.
2:
roundingMode是小數的保留模式。它們都是BigDecimal中的常量欄位,有很多種。
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
3:
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是說:用一個BigDecimal物件除以divisor後的結果,並且要求這個結果保留有scale個小數位,roundingMode表示的就是保留模式是什麼,是四捨五入啊還是其它的,你可以自己選!

方式二:(舍入方式?)

java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");  

df.format(你要格式化的數字);

例:
new java.text.DecimalFormat("#.00").format(3.1415926)

#.00 表示兩位小數 #.0000四位小數 以此類推...

方式三:(舍入方式?)

double d = 3.1415926;
String result = String .format("%.2f");
%.2f %.表示小數點前任意位數;2表示兩位小數;格式後的結果為f 表示浮點型

//下面方式未驗證

方式四:

複製程式碼程式碼如下:

NumberFormat ddf1=NumberFormat.getNumberInstance() ;
void setMaximumFractionDigits(int digits) 
digits 顯示的數字位數 
為格式化物件設定小數點後的顯示的最多位,顯示的最後位是舍入的


import java.text.* ; 
import java.math.* ; 
class TT 

public static void main(String args[]) 
{ double x=23.5455; 
NumberFormat ddf1=NumberFormat.getNumberInstance() ;


ddf1.setMaximumFractionDigits(2); 
String s= ddf1.format(x) ; 
System.out.print(s); 

}

程式碼程式碼如下:
import java.text.*;
DecimalFormat df=new DecimalFormat(".##");
double d=1252.2563;
String st=df.format(d);
System.out.println(st);

相關推薦

Android double保留小數擷取 四捨五入

方式一: BigDecimal.setScale()方法用於格式化小數點 setScale(2);//表示保留2位小數,預設用四捨五入方式  setScale(2,BigDecimal.ROUND_

【.Net】c# 讓double保留小數

con orm tr1 ima 一個 dbd for tin git 1、Math.Round(0.333333,2);//按照四舍五入的國際標準2、 double dbdata=0.335333; string str1=String.Format("{0:F

c# 讓double保留小數

1、Math.Round(0.333333,2);//按照四捨五入的國際標準 2、 double dbdata=0.335333; string str1=String.Format("{0:F}",dbdata);//預設為保留兩位 還有一個類似的方法,但是不提倡:

Jackson轉換實體 double 保留小數

根據業務,需要通過後端給前端返回金額值,一般需要保留兩位小數,使用jackson轉換物件列表 public class CustomDoubleSerialize extends JsonSerializer<Double> { priv

String轉double保留小數

 關於此問題,網上一些答案不太靠譜 通過實踐,此處只提供一個辦法:   String price_CNY = map.get("CNY"); //6.2041 Double cny = Double.parseDouble(price_CNY);//6.2

java使double保留小數的多方法 java保留小數

複製程式碼 程式碼如下:mport java.text.DecimalFormat;   DecimalFormat    df   = new DecimalFormat(“######0.00”);   double d1 = 3.23456  doubl

Java 保留小數(BigDecimalDecimalFormat用法)

萌新今晚用java刷題時候,發現讓人保留兩位小數的題,查百度之後發現有四種方法。然而我覺得我百度到的方法我都看不懂(´-ι_-`)。於是在我多方查證以及自我實驗之後總結兩個好使的法子。 BigDeci

Javadouble值進行四捨五入保留小數的幾種方法

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

Javadouble值進行四舍五入,保留小數的幾種方法

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

將一個double型數值保留小數

    在處理數值運算的時候,有時候會遇到保留幾位小數的需求,下面是一個保留兩位小數的簡單方法。   /** * 將資料保留兩位小數 */ privatedoublegetTwoDecimal(doublenum) { De

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語言 題目

android editText 控制輸入最大值、保留小數保留小數點前面位數

常用方案: 1.在editText的監聽addTextChangedListener中邏輯判斷 2.使用editText的setFilters(new InputFilter[]),設定輸

精準的保留double小數

DecimalFormat decimalFormat = new DecimalFormat("#.00");         String priceString = decimalFormat.format(pr

Java中對double型別保留小數的方法

整理了網上一些方法,方便以後查閱。 1.使用BigDecimal類 BigDecimal b1 = new BigDecimal(width); BigDecimal b2 = new BigDecimal(height); BigDecimal b3 = b1.mul

Java中double型別保留小數

java中對double型別的小數經常會有小數點後邊保留一位小數或者保留兩位小數的需求。 javaAPi中提供了一個專門的類BigDecimal,用來對超過16位有效位的數進行精確的運算。 使用步驟:

Android開發中保留小數

方法一: BigDecimal bg = new BigDecimal(xx); double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 方法二: Decimal

最簡單的保留小數的方法(android

有的時候,android在展示資料的時候,需要保留兩位小數: 之前用的一個方法: 比如把米轉換為km,然後保留兩位小數顯示: <span style="white-space:pre"> </span>float distanceValue = M

iOS小數點格式化如果有小數不為0則保留小數,如果有一小數不為0則保留小數,否則顯示整數

- (NSString *)formatFloat:(float)f { if (fmodf(f, 1)==0) {//如果有一位小數點 return [NSString

double型別保留小數4種方法

public class DoubleFormat { double f = 111231.4585; public void m1() { BigDecimal bg = new BigDecimal(f);