无法在 C# 中将 long 转换为 int 问题

Cannot convert long to int Issue in C#

在下面的代码中,我想在数字前加 0(即)如果数字是 96333,当我执行它时它应该是 096333 我面临无法将 long 转换为 int.Pls 帮助我解决的问题问题。

  public FileDto GenerateBarcodeImage(Int64 BarCodeNumber)
    {
        //string s = BarCodeNumber.ToString().PadLeft(4, '0');
        string result = BarCodeNumber.ToString().PadLeft(4, '0');
        int sds = Int64.Parse(result);
        return GetBarcodeImage(sds);
    }

替换

int sds = Int64.Parse(result);

long sds = Int64.Parse(result);

试试这个:

int sds = Int32.Parse(result);

而不是

int sds = Int64.Parse(result);

正如 Mr47 在将数字解析回 Int64 时正确指出的那样,您将丢失左侧的所有零。

longint 更精确。隐式转换只能从低精度到高精度进行,因为没有丢失信息的风险(因为 int 的最小值和最大值可以很容易地包含在 long 中)。

如果你的值可能大于int的容量,请将sds的类型改为Int64。我想你的函数 GetBarcodeImage 需要一个 Int64 作为参数,如果不是,你可能也想改变它。

如果您的值可以包含在 integer 中,只需更改您的 GenerateBarcodeImage 函数以将 int 作为参数。

仔细考虑将数字转换为较低精度的后果。阅读 story of the first Ariane 5 launch 了解更多详情。