今天項(xiàng)目中需要更改時(shí)長(zhǎng)的顯示方式,規(guī)定必須保留兩位小數(shù),剛才看簡(jiǎn)書(shū)的時(shí)候正好看到一個(gè)指定保留小數(shù)位數(shù)的工具類(lèi)的文章,在此基礎(chǔ)上,做了一點(diǎn)小修改,用起來(lái)更加方便了,有需要的朋友盡管擼走
DecimalUtils 類(lèi):
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; /** * Created by Sean on 17/3/10. */ public class DecimalUtils { /** * 按四舍五入保留指定小數(shù)位數(shù),位數(shù)不夠用0補(bǔ)充 * @param o 格式化前的小數(shù) * @param newScale 保留小數(shù)位數(shù) * @return 格式化后的小數(shù) */ public static String formatDecimalWithZero(Object o, int newScale) { return String.format( "%." + newScale + "f" , o); } /** * 按四舍五入保留指定小數(shù)位數(shù),位數(shù)不夠用0補(bǔ)充 * @param d 格式化前的小數(shù) * @param newScale 保留小數(shù)位數(shù) * @return 格式化后的小數(shù) */ public static String formatDecimalWithZero( double d, int newScale) { String pattern = "0." ; for ( int i = 0 ; i < newScale; i++) { pattern += "0" ; } DecimalFormat df = new DecimalFormat(pattern); return df.format(d); } /** * 按四舍五入保留指定小數(shù)位數(shù),位數(shù)不夠用0補(bǔ)充 * @param d 格式化前的小數(shù) String形式 * @param newScale 保留小數(shù)位數(shù) * @return 格式化后的小數(shù) */ public static String formatDecimalWithZero(String d, int newScale) { String pattern = "0." ; for ( int i = 0 ; i < newScale; i++) { pattern += "0" ; } DecimalFormat df = new DecimalFormat(pattern); return df.format(Double.valueOf(d)); } /** * 按四舍五入保留指定小數(shù)位數(shù),小數(shù)點(diǎn)后僅保留有效位數(shù) * @param d 格式化前的小數(shù) * @param newScale 保留小數(shù)位數(shù) * @return 格式化后的小數(shù) */ public static String formatDecimal( double d, int newScale) { String pattern = "#." ; for ( int i = 0 ; i < newScale; i++) { pattern += "#" ; } DecimalFormat df = new DecimalFormat(pattern); return df.format(d); } /** * 按四舍五入保留指定小數(shù)位數(shù),小數(shù)點(diǎn)后僅保留有效位數(shù) * @param d 格式化前的小數(shù) * @param newScale 保留小數(shù)位數(shù) * @return 格式化后的小數(shù) */ public static String formatDecimal(String d, int newScale) { String pattern = "#." ; for ( int i = 0 ; i < newScale; i++) { pattern += "#" ; } DecimalFormat df = new DecimalFormat(pattern); return df.format(Double.valueOf(d)); } /** * 按指定舍入模式保留指定小數(shù)位數(shù) * @param d 格式化前的小數(shù) * @param newScale 保留小數(shù)位數(shù) * @param roundingMode 舍入模式 * (RoundingMode.UP始終進(jìn)一/DOWN直接舍棄/ * CEILING正進(jìn)負(fù)舍/FLOOR正舍負(fù)進(jìn)/ * HALF_UP四舍五入/HALF_DOWN五舍六進(jìn)/ * HALF_EVEN銀行家舍入法/UNNECESSARY拋出異常) * @return 格式化后的小數(shù) */ public static double formatDecimal( double d, int newScale, RoundingMode roundingMode) { BigDecimal bd = new BigDecimal(d).setScale(newScale, roundingMode); return bd.doubleValue(); } /** * 按指定舍入模式保留指定小數(shù)位數(shù) * @param d 格式化前的小數(shù) * @param newScale 保留小數(shù)位數(shù) * @param roundingMode 舍入模式 * (RoundingMode.UP始終進(jìn)一/DOWN直接舍棄/ * CEILING正進(jìn)負(fù)舍/FLOOR正舍負(fù)進(jìn)/ * HALF_UP四舍五入/HALF_DOWN五舍六進(jìn)/ * HALF_EVEN銀行家舍入法/UNNECESSARY拋出異常) * @return 格式化后的小數(shù) */ public static double formatDecimal(String d, int newScale, RoundingMode roundingMode) { BigDecimal bd = new BigDecimal(Double.valueOf(d)).setScale(newScale, roundingMode); return bd.doubleValue(); } } |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.jianshu.com/p/c8e3b1be2d2a