nullToZero增加重载

This commit is contained in:
Looly 2023-08-02 11:12:38 +08:00
parent 7c0c13cfe0
commit d0453f6776
2 changed files with 98 additions and 12 deletions

View File

@ -1012,17 +1012,6 @@ public class NumberUtil extends NumberValidator {
return (total + pageSize - 1) / pageSize; return (total + pageSize - 1) / pageSize;
} }
/**
* 空转0
*
* @param decimal {@link BigDecimal}可以为{@code null}
* @return {@link BigDecimal}参数为空时返回0的值
* @since 3.0.9
*/
public static BigDecimal null2Zero(final BigDecimal decimal) {
return ObjUtil.defaultIfNull(decimal, BigDecimal.ZERO);
}
/** /**
* 如果给定值为0返回1否则返回原值 * 如果给定值为0返回1否则返回原值
* *
@ -1030,10 +1019,93 @@ public class NumberUtil extends NumberValidator {
* @return 1或非0值 * @return 1或非0值
* @since 3.1.2 * @since 3.1.2
*/ */
public static int zero2One(final int value) { public static int zeroToOne(final int value) {
return 0 == value ? 1 : value; return 0 == value ? 1 : value;
} }
// region nullToZero
/**
* 如果给定值为0返回1否则返回原值
*
* @param number
* @return 1或非0值
*/
public static int nullToZero(final Integer number) {
return number == null ? 0 : number;
}
/**
* 如果给定值为0返回1否则返回原值
*
* @param number
* @return 1或非0值
*/
public static long nullToZero(final Long number) {
return number == null ? 0L : number;
}
/**
* 如果给定值为0返回1否则返回原值
*
* @param number
* @return 1或非0值
*/
public static double nullToZero(final Double number) {
return number == null ? 0.0 : number;
}
/**
* 如果给定值为0返回1否则返回原值
*
* @param number
* @return 1或非0值
*/
public static float nullToZero(final Float number) {
return number == null ? 0.0f : number;
}
/**
* 如果给定值为0返回1否则返回原值
*
* @param number
* @return 1或非0值
*/
public static short nullToZero(final Short number) {
return number == null ? (short) 0 : number;
}
/**
* 如果给定值为0返回1否则返回原值
*
* @param number
* @return 1或非0值
*/
public static byte nullToZero(final Byte number) {
return number == null ? (byte) 0 : number;
}
/**
* 如果给定值为0返回1否则返回原值
*
* @param number
* @return 1或非0值
*/
public static BigInteger nullToZero(final BigInteger number) {
return number == null ? BigInteger.ZERO : number;
}
/**
* 空转0
*
* @param decimal {@link BigDecimal}可以为{@code null}
* @return {@link BigDecimal}参数为空时返回0的值
* @since 3.0.9
*/
public static BigDecimal nullToZero(final BigDecimal decimal) {
return ObjUtil.defaultIfNull(decimal, BigDecimal.ZERO);
}
// endregion
/** /**
* 创建{@link BigInteger}支持16进制10进制和8进制如果传入空白串返回null<br> * 创建{@link BigInteger}支持16进制10进制和8进制如果传入空白串返回null<br>
* from Apache Common Lang * from Apache Common Lang

View File

@ -21,6 +21,7 @@ import org.junit.jupiter.api.condition.EnabledForJreRange;
import org.junit.jupiter.api.condition.JRE; import org.junit.jupiter.api.condition.JRE;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.text.ParseException; import java.text.ParseException;
@ -754,4 +755,17 @@ public class NumberUtilTest {
"123,456,789.111111", "123,456,789.111111",
NumberUtil.formatThousands(123456789.111111D, 6)); NumberUtil.formatThousands(123456789.111111D, 6));
} }
@Test
void nullToZeroTest() {
Assertions.assertEquals(0, NumberUtil.nullToZero((Integer)null));
Assertions.assertEquals(0L, NumberUtil.nullToZero((Long)null));
Assertions.assertEquals(0D, NumberUtil.nullToZero((Double)null));
Assertions.assertEquals(0D, NumberUtil.nullToZero((Double)null));
Assertions.assertEquals(0F, NumberUtil.nullToZero((Float) null));
Assertions.assertEquals(0, NumberUtil.nullToZero((Short) null));
Assertions.assertEquals(0, NumberUtil.nullToZero((Byte) null));
Assertions.assertEquals(BigDecimal.ZERO, NumberUtil.nullToZero((BigDecimal) null));
Assertions.assertEquals(BigInteger.ZERO, NumberUtil.nullToZero((BigInteger) null));
}
} }