1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-12-16 02:58:05 +00:00

clearing:: fixed some bugs when reached too far into the center

This commit is contained in:
Zeno Rogue
2020-03-01 02:35:19 +01:00
parent 62734bbfc5
commit 70d7fde8d4
4 changed files with 28 additions and 11 deletions

View File

@@ -514,6 +514,29 @@ string bignum::get_str(int max_length) const {
return ret;
}
EX string short_form(bignum b) {
if(b < 0) return "-" + short_form(0-b);
else if(b < 100000) return its(b.approx_int());
else {
long long val;
int q;
if(isize(b.digits) >= 2) {
q = max(isize(b.digits) - 2, 0);
val = b.digits[q] + (long long)(bignum::BASE) * b.digits[q+1];
}
else {
q = 0;
val = b.digits[0];
}
int digits = q * 9;
while(val >= 1000) { val /= 10; digits++; }
string str = its(val) + "E" + its(digits + 2);
str.insert(1, ".");
return str;
}
}
bignum::bignum(ld d) {
if(d == 0) return;
int n = 1;