This commit is contained in:
2026-08-18 15:16:14 +03:00
parent f4d089e5e5
commit ce46aad145
21 changed files with 1161 additions and 514 deletions
+5 -2
View File
@@ -1,6 +1,6 @@
use crate::ast::value::Value;
use crate::opcodes::default_fn;
use rust_decimal::{prelude::ToPrimitive, Decimal, MathematicalOps};
use rust_decimal::{prelude::ToPrimitive, Decimal, MathematicalOps, RoundingStrategy};
use super::error::VMError;
use super::vm::VM;
@@ -134,7 +134,10 @@ impl<'a> VM<'a> {
} else {
0
};
self.registers[dest] = Value::Number(n.round_dp(places));
// Half away from zero (2.5 → 3, -2.5 → -3), not banker's rounding.
self.registers[dest] = Value::Number(
n.round_dp_with_strategy(places, RoundingStrategy::MidpointAwayFromZero),
);
Ok(())
}