mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Restore [(10X+3)(10Y+3)]/100 rounding.
This commit is contained in:
@@ -750,19 +750,31 @@ Amount.prototype.issuer = function () {
|
|||||||
Amount.prototype.multiply = function (v) {
|
Amount.prototype.multiply = function (v) {
|
||||||
var result;
|
var result;
|
||||||
|
|
||||||
if (!this.is_comparable(v)) {
|
if (this._is_native && v._is_native) {
|
||||||
result = Amount.NaN();
|
|
||||||
}
|
|
||||||
else if (this._is_native) {
|
|
||||||
result = new Amount();
|
result = new Amount();
|
||||||
result._value = this._value.multiply(v._value);
|
result._value = this._value.multiply(v._value);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
var v1 = this._value.multiply(consts.bi_10).add(3);
|
var v1 = this._value;
|
||||||
var o1 = this._offset - 1;
|
var o1 = this._offset;
|
||||||
var v2 = v._value.multiply(consts.bi_10).add(3);
|
var v2 = v._value;
|
||||||
var o2 = v._offset - 1;
|
var o2 = v._offset;
|
||||||
|
|
||||||
|
while (o1._value.compareTo(consts.bi_man_min_value) < 0 ) {
|
||||||
|
v1 = v1.multiply(consts.bi_10);
|
||||||
|
o1 -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (o2._value.compareTo(consts.bi_man_min_value) < 0 ) {
|
||||||
|
v2 = v2.multiply(consts.bi_10);
|
||||||
|
o2 -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
v1 = v1.multiply(consts.bi_10).add(3);
|
||||||
|
o1 -= 1;
|
||||||
|
v2 = v2.multiply(consts.bi_10).add(3);
|
||||||
|
o2 -= 1;
|
||||||
|
|
||||||
result = new Amount();
|
result = new Amount();
|
||||||
result._offset = o1 + o2 + 2;
|
result._offset = o1 + o2 + 2;
|
||||||
|
|||||||
Reference in New Issue
Block a user