Delphi strToint64 начальная с нулевым значением - PullRequest
0 голосов
/ 08 марта 2019

в Delphi XE8 Я должен преобразовать строку '03213213210' в int64 a:=strToint64('03213213210');

Я получаю = 3213213210;Как я могу получить?a = 03213213210;
Помогите мне.Спасибо.

1 Ответ

1 голос
/ 08 марта 2019

Int64 - числовое значение. Он содержит номер. Числа не имеют понятия форматирования, начальных нулей, базы представления и т. Д. Число - это просто число.

Такие понятия, как двоичные, восьмеричные, десятичные, шестнадцатеричные, не влияют на значение числа, только на его представление. Точно так же требования к форматированию, такие как заданное количество цифр, не связаны со значением, но являются свойством форматирования значения для отображения.

Короче говоря, начальные нули не являются свойством числа. Ваша переменная Int64 содержит число. Когда вы решите отобразить его, вы можете выбрать принудительное использование заданного количества цифр, например, добавив начальные нули для достижения этого числа. Но это не свойство числа, переменная Int64. Это свойство того, как вы выбираете его отображать.

Итак, если вам действительно нужно отправить значение как Int64, тогда вам больше нечего делать. Если он должен отображаться с 11 цифрами, с нулевым заполнением слева, то это форматирование является обязанностью любого, кто отображает его. С другой стороны, возможно, что вы сохранили значение в виде строки, чтобы сохранить форматирование.

Я не могу сказать, какой из двух указанных выше вариантов является тем, что вам нужно сделать, но я могу быть совершенно уверен, что попытка сохранить начальные нули в Int64 не является решением, поскольку это невозможно.

...