Administrator
2025-12-15 7981067b68ee94b27d22dd4619c98acdddc3379b
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
package com.xcong.excoin.modules.okxNewPrice.okxpi;
 
import java.math.BigDecimal;
 
/**
 * 时间工具类
 *
 * @author MrBird
 */
public class DataUtil {
 
 //输入两个整数a、b,a/b取模,输出模,如果有余数,输出模+1
    public static int mod(int a, int b) {
        int mod = a / b;
        if (mod != 0) {
            return mod + 1;
        }
        return mod;
    }
 
    public static void main(String[] args) {
        System.out.println(getDecimalDigits8("3422.66666666666666"));
    }
 
    //输入一个字符串类的小数,输出小数位数
    public static int getDecimalDigits(String num) {
        if( num.indexOf(".") == -1){
            return Integer.valueOf(num);
        } else {
            return String.valueOf(num).split("\\.")[1].length(); //split() 方法用于把一个字符串分割成字符串数组。
        }
    }
 
    //输入一个BigDecimal类的小数,输出小数位数,
    public static int getDecimalDigitsNew(BigDecimal num) {
        //除去小数点后多余的0
        num = num.stripTrailingZeros();
        if (num.scale() == 0) {
            return 0;
        } else {
            return num.scale(); //scale() 方法返回小数点后的位数。
        }
    }
 
    //输入一个包含有小数的字符串,输出原字符串,如果小数位数超过8位,则保留8位小数
    public static String getDecimalDigits8(String num) {
        if (getDecimalDigits(num) > 8) {
            return String.format("%.8f", Double.valueOf(num));
        } else {
            return num;
        }
    }
 
}