toBigDecimal: Avoid creating new BigDecimal instance for some values
Avoid creating new `BigDecimal` instance by calling `BigDecimal.valueOf(this)`, which doesn't create a new instance if the argument falls in the range [0..10]. (there's a `private static final BigDecimal[] zeroThroughTen` cache in BigDecimal.java with 11 BigDecimal instances)
This commit is contained in:
@@ -89,7 +89,7 @@ public inline operator fun BigDecimal.dec(): BigDecimal = this.subtract(BigDecim
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun Int.toBigDecimal(): BigDecimal = BigDecimal(this)
|
||||
public inline fun Int.toBigDecimal(): BigDecimal = BigDecimal.valueOf(this.toLong())
|
||||
|
||||
|
||||
/**
|
||||
@@ -105,7 +105,7 @@ public inline fun Int.toBigDecimal(mathContext: MathContext): BigDecimal = BigDe
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun Long.toBigDecimal(): BigDecimal = BigDecimal(this)
|
||||
public inline fun Long.toBigDecimal(): BigDecimal = BigDecimal.valueOf(this)
|
||||
|
||||
/**
|
||||
* Returns the value of this [Long] number as a [BigDecimal].
|
||||
@@ -154,4 +154,4 @@ public inline fun Double.toBigDecimal(): BigDecimal = BigDecimal(this.toString()
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun Double.toBigDecimal(mathContext: MathContext): BigDecimal = BigDecimal(this.toString(), mathContext)
|
||||
public inline fun Double.toBigDecimal(mathContext: MathContext): BigDecimal = BigDecimal(this.toString(), mathContext)
|
||||
|
||||
Reference in New Issue
Block a user