# HG changeset patch # User Martin Soch # Date 1359534473 -3600 # Node ID 9e4d0019a9ebe82437adbbc4e946b636d6e0f2ac # Parent 035fcbd7a33c8981895f05cc303fdcbfbec5b6a2 Conversion from Long to exact string representation. diff -r 035fcbd7a33c -r 9e4d0019a9eb emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js --- a/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Mon Jan 28 00:15:38 2013 +0100 +++ b/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Wed Jan 30 09:27:53 2013 +0100 @@ -27,7 +27,34 @@ Number.prototype.toLong = function() { var hi = (this > 0xFFFFFFFF) ? (Math.floor(this / 0xFFFFFFFF)) | 0 : 0; return hi.next32(this % 0xFFFFFFFF); -} +}; + +Number.prototype.toExactString = function() { + if (this.hi) { + var res = 0; + var a = [ 6,9,2,7,6,9,4,9,2,4 ]; + var s = ''; + var digit; + var hi = this.hi; + var low = this; + for (var i = 0; i < a.length; i++) { + res += hi * a[i]; + var low_digit = low % 10; + digit = (res % 10) + low_digit; + + low = Math.floor(low / 10); + res = Math.floor(res / 10); + + if (digit >= 10) { + digit -= 10; + res++; + } + s = String(digit).concat(s); + } + return String(res).concat(s); + } + return String(this); +}; Number.prototype.add64 = function(x) { var low = this + x;