一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java四舍五入時保留指定小數位數的五種方式

Java四舍五入時保留指定小數位數的五種方式

2020-09-04 00:14```...簡單點 Java教程

這篇文章主要介紹了Java四舍五入時保留指定小數位數的五種方式,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

方式一:

?
1
2
3
4
double f = 3.1516;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
輸出結果f1為 3.15

源碼解讀:
  public BigDecimal setScale(int newScale, int roundingMode) //int newScale 為小數點后保留的位數, int roundingMode 為變量進行取舍的方式;
  BigDecimal.ROUND_HALF_UP 屬性含義為為四舍五入

方式二:

?
1
2
3
String format = new DecimalFormat("#.0000").format(3.1415926);
System.out.println(format);
輸出結果為 3.1416

解讀:
  #.00 表示兩位小數 #.0000四位小數 以此類推…

方式三:

?
1
2
3
4
double num = 3.1415926;
String result = String.format("%.4f", num);
System.out.println(result);
輸出結果為:3.1416

解讀:
  %.2f 中 %. 表示 小數點前任意位數 2 表示兩位小數 格式后的結果為f 表示浮點型。

方式四:

?
1
2
3
double num = Math.round(5.2544555 * 100) * 0.01d;
System.out.println(num);
輸出結果為:5.25

解讀:
  最后乘積的0.01d表示小數點后保留的位數(四舍五入),0.0001 為小數點后保留4位,以此類推......

方式五:

1. 功能

將程序中的double值精確到小數點后兩位。可以四舍五入,也可以直接截斷。
比如:輸入12345.6789,輸出可以是12345.68也可以是12345.67。至于是否需要四舍五入,可以通過參數來決定(RoundingMode.UP/RoundingMode.DOWN等參數)。

2. 實現代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.clzhang.sample;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class DoubleTest {
  /** 保留兩位小數,四舍五入的一個老土的方法 */
  public static double formatDouble1(double d) {
    return (double)Math.round(d*100)/100;
  }
  public static double formatDouble2(double d) {
    // 舊方法,已經不再推薦使用
  // BigDecimal bg = new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP);
    // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
    BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);
    return bg.doubleValue();
  }
  public static String formatDouble3(double d) {
    NumberFormat nf = NumberFormat.getNumberInstance();
 
    // 保留兩位小數
    nf.setMaximumFractionDigits(2);
    // 如果不需要四舍五入,可以使用RoundingMode.DOWN
    nf.setRoundingMode(RoundingMode.UP);
    return nf.format(d);
  }
  /**這個方法挺簡單的 */
  public static String formatDouble4(double d) {
    DecimalFormat df = new DecimalFormat("#.00");
    return df.format(d);
  }
  /**如果只是用于程序中的格式化數值然后輸出,那么這個方法還是挺方便的, 應該是這樣使用:System.out.println(String.format("%.2f", d));*/
  public static String formatDouble5(double d) {
    return String.format("%.2f", d);
  }
  public static void main(String[] args) {
    double d = 12345.67890;
    System.out.println(formatDouble1(d));
    System.out.println(formatDouble2(d));
    System.out.println(formatDouble3(d));
    System.out.println(formatDouble4(d));
    System.out.println(formatDouble5(d));
  }
}

3. 輸出

12345.68
12345.68
12,345.68
12345.68
12345.68

以上就是Java四舍五入時保留指定小數位數的五種方式的詳細內容,更多關于Java四舍五入時保留指定小數位數的資料請關注服務器之家其它相關文章!

原文鏈接:https://www.cnblogs.com/yysbolg/p/11095548.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩国产超高清免费看片 | 出差被灌醉绝伦的上司日本 | 午夜影院一区二区三区 | 白丝女仆被啪到深夜漫画 | 99精品视频免费在线观看 | 色中色官网| 欧美xingai | 99re最新网址 | 天天操免费视频 | 免费被靠视频动漫 | 欧美一区二区三区在线观看免费 | 国产成人精品免费大全 | 亚洲2023无矿砖码砖区 | 全肉一女n男np高h双龙养成 | 久久久精品国产免费A片胖妇女 | 久久精品国产亚洲AV蜜臀 | 乌克兰bbw | 99久久国产亚洲综合精品 | 好爽好舒服视频 | 四虎影视永久免费视频观看 | 麻豆最新地址 | 日韩理论在线观看 | 日本一道本中文字幕 | 亚洲午夜小视频 | 1769最新资源站 | 男女肉粗暴进来下面好紧 | 五月天中文在线 | 久久re视频这里精品一本到99 | 校花被强迫np肉高h 校服下的白嫩小乳尖h1v1 | 国产欧美综合精品一区二区 | 韩国三级做爰 | 亚洲一区二区三区91 | 欧美国产日产精品免费视频 | 天天快乐在线观看 | 精品国语对白精品自拍视 | 欧美做受| 国产精品高清一区二区三区 | 久久精品成人免费看 | 亚洲激情在线视频 | 四虎成人4hutv影院 | 国内精品视频一区二区三区 |