While trying to compare Lucee with ACF for a possible switch over to Lucee, we ran into this issue:
InputBaseN returns wrong values. This seems to happen with larger integers. Here are two examples.
In Decimal:
writeDump(InputBaseN("8999999999999999",10))
writeDump(InputBaseN("8999999999999998",10))
writeDump(InputBaseN("9999999999999999",10))
writeDump(InputBaseN("9999999999999998",10))
Lucee output (incorrect for “9999999999999999”):
8999999999999999
8999999999999998
10000000000000000 <<< incorrect
9999999999999998
ACF output (all correct):
8999999999999999
8999999999999998
9999999999999999
9999999999999998
In Binary:
<cfscript>
writeDump(InputBaseN("11111111110000000101100000001",2));
writeDump(InputBaseN(11111111110000000101100000001,2));
</cfscript>
Lucee results (second one is off):
536349441
536346624
ACF results (correct):
536349441
536349441