Я бы хотел уточнить пост Гленна, чтобы прояснить ситуацию с Ваагном.
expr
не возвращает свой результат в том или ином представлении, вместо этого он возвращает значение в некотором подходящем внутреннем формате (целое число, большое целое число, значение с плавающей запятой и т. Д.). При тестировании вы видите только интерпретатор Tcl, который преобразует то, что expr
вернуло в соответствующую текстовую форму, используя преобразование по умолчанию в строку, которая для целых чисел, естественно, использует базу 10.
Это преобразование происходит в вашем случае исключительно потому, что вы хотели отобразить значение, возвращаемое expr
, и отображение (любых) значений естественным образом приводит к их преобразованию в строки, если они «напечатаны» - на терминал, к окну tkcon и т. д.
Используя format
, вы применяете любое желаемое строковое представление вместо стандартного. Поскольку format
уже возвращает значение, которое является строкой внутри, преобразование не выполняется при печати.