作者:hongjinqi
项目:financ
func (c Test) add(str1 string, str2 string) dec.Dec {
dec1 := dec.Dec{}
dec1.SetString(str1)
dec2 := dec.Dec{}
dec2.SetString(str2)
result := dec.Dec{}
result.Add(&dec1, &dec2)
return result
}
作者:Nevte
项目:mscuti
func NewFundraiserTransaction(addr Address, value int64, time int64) (*FundraiserTransaction, error) {
tx := &FundraiserTransaction{
Addr: addr.Addr,
Time: time,
}
// Base line amount bought from fundraiser, 1 btc gets you 100 msc
mastercoinBought := dec.NewDecInt64((value * 100))
mastercoinBought.Quo(mastercoinBought, dec.NewDecInt64(1e8), dec.Scale(18), dec.RoundHalfUp)
fmt.Println("Baseline MSC Bought:", mastercoinBought)
// Bonus amount received
diff := dec.NewDecInt64(FundraiserEndTime - time)
timeDifference := diff.Quo(diff, dec.NewDecInt64(604800), dec.Scale(18), dec.RoundHalfUp)
fmt.Println("Time difference", timeDifference)
if timeDifference.Cmp(dec.NewDecInt64(0)) > 0 {
// bought += bought * (timediff * 0.1)
x := new(dec.Dec)
x.SetString("0.1")
ratio := new(dec.Dec).Mul(timeDifference, x)
fmt.Println("Ratio:", ratio)
bonus := new(dec.Dec).Mul(ratio, mastercoinBought)
bonus.Round(bonus, dec.Scale(18), dec.RoundDown)
mastercoinBought.Add(mastercoinBought, bonus)
mastercoinBought.Round(mastercoinBought, dec.Scale(8), dec.RoundHalfUp)
}
tx.Value = mastercoinBought
Logger.Println("Created fundraiser transaction", tx)
return tx, nil
}
作者:hongjinqi
项目:financ
func (c Test) getDec(str string) dec.Dec {
result := dec.Dec{}
result.SetString(str)
return result
}
作者:Nevte
项目:mscuti
func DecFromString(input string) *dec.Dec {
x := new(dec.Dec)
x.SetString(input)
return x
}
作者:hongjinqi
项目:financ
func (c MathUtil) Add(str1 string, str2 string) string {
dec1 := dec.Dec{}
dec1.SetString(str1)
dec2 := dec.Dec{}
dec2.SetString(str2)
result := dec.Dec{}
result.Add(&dec1, &dec2)
return result.String()
}
作者:hongjinqi
项目:financ
/**
return x / y
*/
func (c MathUtil) Quo(str1 string, str2 string, scaler dec.Scaler, rounder dec.Rounder) string {
dec1 := dec.Dec{}
dec1.SetString(str1)
dec2 := dec.Dec{}
dec2.SetString(str2)
result := dec.Dec{}
result.Quo(&dec1, &dec2, scaler, rounder)
return result.String()
}