0

我正在开发 C# 应用程序(.Net 4.0)。在某些情况下,我想附加多个 ushort 值,如下所述

Ushort a = 123;
Ushort b = 045;
Ushort c = 607;
Ushort d = 008;

我希望结果为 12304560700。

目前采用以下方法

var temp = Convert.ToString(a) + Convert.ToString(b) + Convert.ToString(c) + Convert.ToString(d);

我得到的温度值为 123456078。

我确实明白,由于 ushort 数据类型,它消除了所有前导零。但我期待结果为 12304560700。

我可能使用了 padleft 方法,但长度和前导零计数不固定,因此该选项也不符合我的要求。

我想知道如何实现同样的目标,同样非常感谢任何小的投入。

提前致谢。

4

4 回答 4

0

ushorts不能存储前导零的数字。在它眼里,45045都是同一个确切的数字。

我建议您将数字存储为字符串,如下所示:

var a = "123";
var b = "045";
var c = "607";
var d = "008";

如果您从控制台获取这些内容,这将特别容易。

于 2017-05-04T05:51:02.993 回答
0

您希望所有数字都使用 3 位数字进行格式化,如果需要,可以使用前导零。查看标准数字格式字符串,您会得到:

var temp = a.ToString("D3") + b.ToString("D3") + ...
于 2017-05-04T05:47:07.237 回答
0
int a = 123;
int b = 045;
int c = 607;
int d = 008;

为什么你不能这样做?结果不会是你想要的吗?

int temp = a.ToString() + b.ToString() + c.ToString() + d.Substring(d.Length - 2);

结果为 12304560700。

于 2017-05-04T05:48:14.877 回答
0

而不是将值分配给 ushort 将其分配给字符串或 var。

例如:字符串 a="123"; 字符串 b="011" 等或 var a="123" 等

然后 var temp = a+b+... 这将起作用。没有以零开头的 Ushort 值存储数据。谢谢

于 2017-05-04T06:15:10.360 回答