ITADN

Truncate should parse negative values too, or return error

#406OpenAlexandrosKyriakakis 创建于 2025-07-07
Truncate function would be useful to parse also negative values. So for example, ```go a := decimal.RequireFromString("5432") b := a.Truncate(-2) ``` So `b` should return `5000`, currently it returns `a` which is misleading. In my opinion it should either return `5000` or an error. I don't see any reason having this check `precision >= 0` here: https://github.com/shopspring/decimal/blob/08afb35517362df21914209a026f65bb33275fbc/decimal.go#L1755-L1769 ```go func (d Decimal) Truncate(precision int32) Decimal { d.ensureInitialized() if precision >= 0 && -precision > d.exp { return d.rescale(-precision) } return d } ``` Since it would work, right out of the box. Any thoughts or concerns?
2 条评论