Skip to content

Commit 8fc6db9

Browse files
author
371718330@qq.com
committed
新增HttpURLConnection和Webservice网络工具类以及金额计算类
1 parent 571e777 commit 8fc6db9

File tree

8 files changed

+498
-16
lines changed

8 files changed

+498
-16
lines changed

CommonUtil/build.gradle

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,26 @@ android {
2727
}
2828

2929
dependencies {
30+
final SUPPORT_VERSION = '25.3.1'
3031
compile fileTree(include: ['*.jar'], dir: 'libs')
3132
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
3233
exclude group: 'com.android.support', module: 'support-annotations'
3334
})
34-
compile 'com.android.support:appcompat-v7:25.3.1'
35+
// compile 'com.android.support:appcompat-v7:25.3.1'
36+
compile "com.android.support:appcompat-v7:$SUPPORT_VERSION"
37+
compile "com.android.support:design:$SUPPORT_VERSION"
3538
testCompile 'junit:junit:4.12'
3639
//编码工具类用到
3740
compile files('libs/BASE64Decoder.jar')
41+
//Fresco图片加载
42+
compile 'com.facebook.fresco:fresco:1.3.0'
43+
//Picasso图片加载
44+
compile 'com.squareup.picasso:picasso:2.5.2'
45+
//Glide图片加载
46+
compile 'com.github.bumptech.glide:glide:3.7.0'
3847
//KLog
39-
compile 'com.github.zhaokaiqiang.klog:library:1.5.0'
48+
// compile 'com.github.zhaokaiqiang.klog:library:1.5.0'
49+
compile files('libs/ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar')
4050
}
4151
//-------------------------上传到jcenter-----------------------
4252

Binary file not shown.

CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppBigDecimal.java

Lines changed: 177 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,40 @@ public static double add(double v1, double v2) {
3131
BigDecimal b1 = new BigDecimal(Double.toString(v1));
3232
BigDecimal b2 = new BigDecimal(Double.toString(v2));
3333
return b1.add(b2).doubleValue();
34-
}
35-
36-
/**
34+
}
35+
36+
/**
37+
* 提供精确的加法运算
38+
*
39+
* @param v1 被加数
40+
* @param v2 加数
41+
* @return 两个参数的和
42+
*/
43+
public static BigDecimal add(String v1, String v2) {
44+
BigDecimal b1 = new BigDecimal(v1);
45+
BigDecimal b2 = new BigDecimal(v2);
46+
return b1.add(b2);
47+
}
48+
49+
/**
50+
* 提供精确的加法运算
51+
*
52+
* @param v1 被加数
53+
* @param v2 加数
54+
* @param scale 保留scale 位小数
55+
* @return 两个参数的和
56+
*/
57+
public static String add(String v1, String v2, int scale) {
58+
if (scale < 0) {
59+
throw new IllegalArgumentException(
60+
"The scale must be a positive integer or zero");
61+
}
62+
BigDecimal b1 = new BigDecimal(v1);
63+
BigDecimal b2 = new BigDecimal(v2);
64+
return b1.add(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
65+
}
66+
67+
/**
3768
* 提供精确的减法运算
3869
* @param v1 被减数
3970
* @param v2 减数
@@ -43,9 +74,40 @@ public static double substract(double v1, double v2) {
4374
BigDecimal b1 = new BigDecimal(Double.toString(v1));
4475
BigDecimal b2 = new BigDecimal(Double.toString(v2));
4576
return b1.subtract(b2).doubleValue();
46-
}
47-
48-
/**
77+
}
78+
79+
/**
80+
* 提供精确的减法运算。
81+
*
82+
* @param v1 被减数
83+
* @param v2 减数
84+
* @return 两个参数的差
85+
*/
86+
public static BigDecimal sub(String v1, String v2) {
87+
BigDecimal b1 = new BigDecimal(v1);
88+
BigDecimal b2 = new BigDecimal(v2);
89+
return b1.subtract(b2);
90+
}
91+
92+
/**
93+
* 提供精确的减法运算
94+
*
95+
* @param v1 被减数
96+
* @param v2 减数
97+
* @param scale 保留scale 位小数
98+
* @return 两个参数的差
99+
*/
100+
public static String sub(String v1, String v2, int scale) {
101+
if (scale < 0) {
102+
throw new IllegalArgumentException(
103+
"The scale must be a positive integer or zero");
104+
}
105+
BigDecimal b1 = new BigDecimal(v1);
106+
BigDecimal b2 = new BigDecimal(v2);
107+
return b1.subtract(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
108+
}
109+
110+
/**
49111
* 提供精确的乘法运算
50112
* @param v1 被乘数
51113
* @param v2 乘数
@@ -55,8 +117,40 @@ public static double multiply(double v1, double v2) {
55117
BigDecimal b1 = new BigDecimal(Double.toString(v1));
56118
BigDecimal b2 = new BigDecimal(Double.toString(v2));
57119
return b1.multiply(b2).doubleValue();
58-
}
59-
120+
}
121+
122+
/**
123+
* 提供精确的乘法运算
124+
*
125+
* @param v1 被乘数
126+
* @param v2 乘数
127+
* @param scale 保留scale 位小数
128+
* @return 两个参数的积
129+
*/
130+
public static double mul(double v1, double v2, int scale) {
131+
BigDecimal b1 = new BigDecimal(Double.toString(v1));
132+
BigDecimal b2 = new BigDecimal(Double.toString(v2));
133+
return round(b1.multiply(b2).doubleValue(), scale);
134+
}
135+
136+
/**
137+
* 提供精确的乘法运算
138+
*
139+
* @param v1 被乘数
140+
* @param v2 乘数
141+
* @param scale 保留scale 位小数
142+
* @return 两个参数的积
143+
*/
144+
public static String mul(String v1, String v2, int scale) {
145+
if (scale < 0) {
146+
throw new IllegalArgumentException(
147+
"The scale must be a positive integer or zero");
148+
}
149+
BigDecimal b1 = new BigDecimal(v1);
150+
BigDecimal b2 = new BigDecimal(v2);
151+
return b1.multiply(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
152+
}
153+
60154
/**
61155
* 提供(相对)精确的除法运算,当发生除不尽的情况时,
62156
* 精确到小数点以后10位,以后的数字四舍五入.
@@ -67,7 +161,8 @@ public static double multiply(double v1, double v2) {
67161
public static double divide(double v1, double v2) {
68162
return divide(v1, v2, DEF_DIV_SCALE);
69163
}
70-
164+
165+
71166
/**
72167
* 提供(相对)精确的除法运算.
73168
* 当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入.
@@ -85,7 +180,25 @@ public static double divide(double v1, double v2, int scale) {
85180
BigDecimal b1 = new BigDecimal(Double.toString(v1));
86181
BigDecimal b2 = new BigDecimal(Double.toString(v2));
87182
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
88-
}
183+
}
184+
185+
/**
186+
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
187+
* 定精度,以后的数字四舍五入
188+
*
189+
* @param v1 被除数
190+
* @param v2 除数
191+
* @param scale 表示需要精确到小数点以后几位
192+
* @return 两个参数的商
193+
*/
194+
public static String divide(String v1, String v2, int scale) {
195+
if (scale < 0) {
196+
throw new IllegalArgumentException("The scale must be a positive integer or zero");
197+
}
198+
BigDecimal b1 = new BigDecimal(v1);
199+
BigDecimal b2 = new BigDecimal(v1);
200+
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).toString();
201+
}
89202

90203
/**
91204
* 提供精确的小数位四舍五入处理
@@ -101,10 +214,60 @@ public static double round(double v, int scale) {
101214
BigDecimal b = new BigDecimal(Double.toString(v));
102215
BigDecimal one = new BigDecimal("1");
103216
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
104-
}
105-
106-
107-
/**
217+
}
218+
219+
/**
220+
* 提供精确的小数位四舍五入处理
221+
*
222+
* @param v 需要四舍五入的数字
223+
* @param scale 小数点后保留几位
224+
* @return 四舍五入后的结果
225+
*/
226+
public static String round(String v, int scale) {
227+
if (scale < 0) {
228+
throw new IllegalArgumentException(
229+
"The scale must be a positive integer or zero");
230+
}
231+
BigDecimal b = new BigDecimal(v);
232+
return b.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
233+
}
234+
235+
/**
236+
* 取余数
237+
*
238+
* @param v1 被除数
239+
* @param v2 除数
240+
* @param scale 小数点后保留几位
241+
* @return 余数
242+
*/
243+
public static String remainder(String v1, String v2, int scale) {
244+
if (scale < 0) {
245+
throw new IllegalArgumentException(
246+
"The scale must be a positive integer or zero");
247+
}
248+
BigDecimal b1 = new BigDecimal(v1);
249+
BigDecimal b2 = new BigDecimal(v2);
250+
return b1.remainder(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
251+
}
252+
253+
/**
254+
* 取余数 BigDecimal
255+
*
256+
* @param v1 被除数
257+
* @param v2 除数
258+
* @param scale 小数点后保留几位
259+
* @return 余数
260+
*/
261+
public static BigDecimal remainder(BigDecimal v1, BigDecimal v2, int scale) {
262+
if (scale < 0) {
263+
throw new IllegalArgumentException(
264+
"The scale must be a positive integer or zero");
265+
}
266+
return v1.remainder(v2).setScale(scale, BigDecimal.ROUND_HALF_UP);
267+
}
268+
269+
270+
/**
108271
* 金额分割,四舍五人金额
109272
* @param s
110273
* @return

0 commit comments

Comments
 (0)