💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
>[danger] 这个类不推荐改名和路径, 这是给这个类添加额外的方法 ![](https://img.kancloud.cn/28/98/2898579eccae2069d1f79889d67c9f02_612x32.png) 文件名: `java.lang.Math.java` ``` import java.text.NumberFormat; import java.math.RoundingMode; /** 在 java.lang.Math 类添加扩展方法(类似于kotlin的扩展方法) */ class Math{ /** 取随机小数,含头含尾 min = 最小值 max = 最大值 */ static double random(double min,double max){ /* 在当前类的静态方法体内是具有静态环境的 这种情况下,下列三种静态方法的调用都是等价的: random() Math.random() java.lang.Math.random() */ return random() * (max-min)+min; } /** 取随机整数,含头含尾 min = 最小值 max = 最大值 */ static int random(int min,int max){ return (int) round(random() * (max-min) + min); } static double random(double min,int max){ return random(min,(double) max); } static double random(int min,double max){ return random((double) min,max); } /** 取随机整数,含头含尾 max = 最大值 */ static int random(int max){ //注意强转 int return random(0,max); } /** 兼容旧版randomint */ static int randomint(int min,int max){ return random(min,max); } //静态成员 static NumberFormat nf = NumberFormat.getNumberInstance(); /** 保留小数后的几位 value = 小数 retain = 保留位数 */ static double decimals(double value,int retain){ nf.setMaximumFractionDigits(retain); nf.setRoundingMode(RoundingMode.HALF_UP); nf.setGroupingUsed(false); return Double.parseDouble(nf.format(value)); } /** 兼容旧版RandomWeight */ static String RandomWeight(int[] nums,String[] rets){ int max = 0; for(int i = 0;i<nums.length;i++) max+=nums[i]; int next = random(max); int c = 0; for(int i = 0;i<nums.length;i++){ c += nums[i]; if(c >= next) return rets[i]; } return rets[0]; } /** 兼容旧版RandomWeight */ static String RandomWeight(String[] rets){ if(rets == null || rets.length == 0) return null; return rets[random(rets.length)]; } /** 兼容旧版RandomWeight */ static Object RandomWeight(int[] nums,Object[] rets){ int max = 0; for(int i = 0;i<nums.length;i++) max+=nums[i]; int next = random(max); int c = 0; for(int i = 0;i<nums.length;i++){ c += nums[i]; if(c >= next) return rets[i]; } return rets[0]; } static double max(double x,int y){ return max(x,(double) y); } static double max(int x,double y){ return max((double) x, y); } static double min(double x,int y){ return min(x,(double) y); } static double min(int x,double y){ return min((double) x, y); } } ```