Conversion from Long to exact string representation.
1.1 --- a/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Mon Jan 28 00:15:38 2013 +0100
1.2 +++ b/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Wed Jan 30 09:27:53 2013 +0100
1.3 @@ -27,7 +27,34 @@
1.4 Number.prototype.toLong = function() {
1.5 var hi = (this > 0xFFFFFFFF) ? (Math.floor(this / 0xFFFFFFFF)) | 0 : 0;
1.6 return hi.next32(this % 0xFFFFFFFF);
1.7 -}
1.8 +};
1.9 +
1.10 +Number.prototype.toExactString = function() {
1.11 + if (this.hi) {
1.12 + var res = 0;
1.13 + var a = [ 6,9,2,7,6,9,4,9,2,4 ];
1.14 + var s = '';
1.15 + var digit;
1.16 + var hi = this.hi;
1.17 + var low = this;
1.18 + for (var i = 0; i < a.length; i++) {
1.19 + res += hi * a[i];
1.20 + var low_digit = low % 10;
1.21 + digit = (res % 10) + low_digit;
1.22 +
1.23 + low = Math.floor(low / 10);
1.24 + res = Math.floor(res / 10);
1.25 +
1.26 + if (digit >= 10) {
1.27 + digit -= 10;
1.28 + res++;
1.29 + }
1.30 + s = String(digit).concat(s);
1.31 + }
1.32 + return String(res).concat(s);
1.33 + }
1.34 + return String(this);
1.35 +};
1.36
1.37 Number.prototype.add64 = function(x) {
1.38 var low = this + x;