在下面的代码中我想在数字之前添加0(即)如果数字是96333则应该是096333当我执行它时我面临的问题是无法将long转换为int.Pls帮助我解决问题。< / p>
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);
}
答案 0 :(得分:0)
替换
int sds = Int64.Parse(result);
带
long sds = Int64.Parse(result);
答案 1 :(得分:0)
试试这个:
int sds = Int32.Parse(result);
而不是
int sds = Int64.Parse(result);
正如Mr47在将数字解析回Int64时正确指出的那样,你将丢失左边的所有零。
答案 2 :(得分:0)
long
比int
更准确。隐式转换只能从较低到较高的精度进行,因为不存在丢失信息的风险(因为int
中的long
的最小和最大值可以很容易地包含在int
中。
如果您的值可能大于GetBarcodeImage
的容量,请将sds的类型更改为Int64。我认为您的函数Int64
会将integer
作为参数,如果不是,您可能也想更改它。
如果您的值可以包含在GenerateBarcodeImage
中,请更改您的int
函数以及{{1}}作为参数。
仔细考虑将数字转换为较低精度的后果。请阅读story of the first Ariane 5 launch了解详情。