بسبب أن Kotlin، تعامل الأرقام الصحيحة (Integer) التي تبدأ بصفر تُعامل على أنها تمثل قيمة في نظام الأرقام الثماني (Octal)، وليس في النظام العشري (Decimal)، والنظام الثماني Octal غير مدعوم حاليًا في كوتلن، وذلك يعني أنه إذا بدأت العدد الصحيح بالصفر، سيتم تفسيره على أنه في نظام الأرقام الثماني.
val octalNumber = 0123 // هذا يعني 123 في نظام الأرقام الثماني
val decimalNumber = 123 // هذا هو الرقم الصحيح 123 في النظام العشري
بمعنى أنه لو بدأتي قيمة integer بالصفر، فإن كوتلن تعتبر بشكل افتراضي بأن الرقم هو نظام الثماني (octal)، وليس بنظام العشري، لذا، يجب عليك تجنب بداية القيمة بالصفر إذا كنتِ تريد تمثيلها كقيمة عشرية.
وفي جافا يتم تفسير تلك الأرقام التي تبدأ بـ 0 على أنها octals وذلك النظام مدعوم في جافا لكن من الأفضل تجنب كتابة ذلك إلا إذا كنتي على علم بما تقومين به، والبدء بكتابة الأرقام الصحيحة بدون 0 .
هذا يأتي بسبب أن هلا يمكن البدء بقيمة صفر مباشرة، في لغة Kotlin، عند تعريف integer literal (قيمة صحيحة)، لا يمكن أن نبدأ القيمة بصفر مباشرة، هذا يعني أن القيم الصحيحة في Kotlin لا يجب أن تبدأ بصفر إذا كنا نستخدم literal.
لكن هذا هو استخدام مختلف تماما عن استخدام الصفر كبادئة في لغات أخرى، حيث يستخدم الصفر بشكل رئيسي لتمثيل الأرقام الصحيحة في النظام العشري.
ففي Kotlin، إذا كنا نريد تمثيل قيمة صحيحة، يتوجب علينا أن لا نبدأ القيمة بصفر، لأن ذلك قد يتسبب في فهمها كتمثيل للنظام الثماني بدلاً من النظام العشري. على عكس Java، حيث يفهم الصفر في بادئة القيمة الصحيحة كتمثيل للنظام العشري. هذا لتحقيق السلوك النموذجي في Kotlin، يمكن استخدام بادئة "0x" لتمثيل النظام العشري، وبالتالي تجنب الالتباس الذي يمكن أن يحدث بسبب بداية القيمة بالصفر.