All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hutool.core.math.MathUtil Maven / Gradle / Ivy

There is a newer version: 5.8.33
Show newest version
package cn.hutool.core.math;

import java.util.List;

/**
 * 数学相关方法工具类
* 此工具类与{@link cn.hutool.core.util.NumberUtil}属于一类工具,NumberUtil偏向于简单数学计算的封装,MathUtil偏向复杂数学计算 * * @author looly * @since 4.0.7 */ public class MathUtil { //--------------------------------------------------------------------------------------------- Arrangement /** * 计算排列数,即A(n, m) = n!/(n-m)! * * @param n 总数 * @param m 选择的个数 * @return 排列数 */ public static long arrangementCount(int n, int m) { return Arrangement.count(n, m); } /** * 计算排列数,即A(n, n) = n! * * @param n 总数 * @return 排列数 */ public static long arrangementCount(int n) { return Arrangement.count(n); } /** * 排列选择(从列表中选择n个排列) * * @param datas 待选列表 * @param m 选择个数 * @return 所有排列列表 */ public static List arrangementSelect(String[] datas, int m) { return new Arrangement(datas).select(m); } /** * 全排列选择(列表全部参与排列) * * @param datas 待选列表 * @return 所有排列列表 */ public static List arrangementSelect(String[] datas) { return new Arrangement(datas).select(); } //--------------------------------------------------------------------------------------------- Combination /** * 计算组合数,即C(n, m) = n!/((n-m)! * m!) * * @param n 总数 * @param m 选择的个数 * @return 组合数 */ public static long combinationCount(int n, int m) { return Combination.count(n, m); } /** * 组合选择(从列表中选择n个组合) * * @param datas 待选列表 * @param m 选择个数 * @return 所有组合列表 */ public static List combinationSelect(String[] datas, int m) { return new Combination(datas).select(m); } /** * 金额元转换为分 * * @param yuan 金额,单位元 * @return 金额,单位分 * @since 5.7.11 */ public static long yuanToCent(double yuan) { return new Money(yuan).getCent(); } /** * 金额分转换为元 * * @param cent 金额,单位分 * @return 金额,单位元 * @since 5.7.11 */ public static double centToYuan(long cent) { long yuan = cent / 100; int centPart = (int) (cent % 100); return new Money(yuan, centPart).getAmount().doubleValue(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy