tt_ROUNDBANK function
dynamic
tt_ROUNDBANK(
- dynamic v1,
- dynamic v2
tt_ROUNDBANK(value, decimals): banker's rounding (round half to even)
Implementation
dynamic tt_ROUNDBANK(dynamic v1, dynamic v2) {
final val = varToDouble(v1);
final d = varToInt(v2);
final factor = pow(10, d).toDouble();
final scaled = val * factor;
final frac = scaled - scaled.truncateToDouble();
final intPart = scaled.truncate();
if ((frac - 0.5).abs() < 1e-10) {
// exactly 0.5: round to even
if (intPart.isOdd) {
return (intPart + 1) / factor;
} else {
return intPart / factor;
}
}
return (scaled + 0.5).truncateToDouble() / factor;
}