From 38eb9bba4dd345c79398a6e1b000442b5bad288b Mon Sep 17 00:00:00 2001 From: Patrik Date: Thu, 8 Jan 2026 12:11:23 +0100 Subject: [PATCH] Alias needed for Zinc code --- .../instance/decimalDigitLength.st | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 filetree/Neo-JSON-GemStone-Core.package/SmallInteger.extension/instance/decimalDigitLength.st diff --git a/filetree/Neo-JSON-GemStone-Core.package/SmallInteger.extension/instance/decimalDigitLength.st b/filetree/Neo-JSON-GemStone-Core.package/SmallInteger.extension/instance/decimalDigitLength.st new file mode 100644 index 0000000..514e5a1 --- /dev/null +++ b/filetree/Neo-JSON-GemStone-Core.package/SmallInteger.extension/instance/decimalDigitLength.st @@ -0,0 +1,37 @@ +*neo-json-gemstone-core +decimalDigitLength + "Answer the number of digits printed out in base 10. + Note that this only works for positive SmallIntegers up to 64-bits." + "1 decimalDigitLength >>> 1" + "100000000 decimalDigitLength >>> 9" + "SmallInteger maxVal decimalDigitLength >>> 19" + + ^self < 10000 + ifTrue: + [self < 100 + ifTrue: + [self < 10 ifTrue: [1] ifFalse: [2]] + ifFalse: + [self < 1000 ifTrue: [3] ifFalse: [4]]] + ifFalse: + [self < 100000000 + ifTrue: + [self < 1000000 + ifTrue: [self < 100000 ifTrue: [5] ifFalse: [6]] + ifFalse: [self < 10000000 ifTrue: [7] ifFalse: [8]]] + ifFalse: + [self < 1000000000000 + ifTrue: + [self < 10000000000 + ifTrue: [self < 1000000000 ifTrue: [9] ifFalse: [10]] + ifFalse: [self < 100000000000 ifTrue: [11] ifFalse: [12]]] + ifFalse: + [self < 10000000000000000 + ifTrue: + [self < 100000000000000 + ifTrue: [self < 10000000000000 ifTrue: [13] ifFalse: [14]] + ifFalse: [self < 1000000000000000 ifTrue: [15] ifFalse: [16]]] + ifFalse: + [self < 1000000000000000000 + ifTrue: [self < 100000000000000000 ifTrue: [17] ifFalse: [18]] + ifFalse: [self < 10000000000000000000 ifTrue: [19] ifFalse: [20]]]]]]