mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-21 20:34:43 +08:00
新增加、减、乘的运算函数
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package math
|
package math
|
||||||
|
|
||||||
|
import "github.com/duanhf2012/origin/log"
|
||||||
|
|
||||||
type NumberType interface {
|
type NumberType interface {
|
||||||
int | int8 | int16 | int32 | int64 | float32 | float64 | uint | uint8 | uint16 | uint32 | uint64
|
int | int8 | int16 | int32 | int64 | float32 | float64 | uint | uint8 | uint16 | uint32 | uint64
|
||||||
}
|
}
|
||||||
@@ -35,3 +37,42 @@ func Abs[NumType SignedNumberType](Num NumType) NumType {
|
|||||||
|
|
||||||
return Num
|
return Num
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func Add[NumType NumberType](number1 NumType, number2 NumType) NumType {
|
||||||
|
ret := number1 + number2
|
||||||
|
if number2> 0 && ret < number1 {
|
||||||
|
log.SStack("Calculation overflow , number1 is ",number1," number2 is ",number2)
|
||||||
|
}else if (number2<0 && ret > number1){
|
||||||
|
log.SStack("Calculation overflow , number1 is ",number1," number2 is ",number2)
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
func Sub[NumType NumberType](number1 NumType, number2 NumType) NumType {
|
||||||
|
ret := number1 - number2
|
||||||
|
if number2> 0 && ret > number1 {
|
||||||
|
log.SStack("Calculation overflow , number1 is ",number1," number2 is ",number2)
|
||||||
|
}else if (number2<0 && ret < number1){
|
||||||
|
log.SStack("Calculation overflow , number1 is ",number1," number2 is ",number2)
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func Mul[NumType NumberType](number1 NumType, number2 NumType) NumType {
|
||||||
|
ret := number1 * number2
|
||||||
|
if number1 == 0 || number2 == 0 {
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
if ret / number2 == number1 {
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
log.SStack("Calculation overflow , number1 is ",number1," number2 is ",number2)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user