最多显示3个字符的数字

问题描述 投票:0回答:1

我有一个范围为

1
999
的号码。

我希望

1
<10
显示单个小数(如果有效)。但
10
999
任何时候都不应显示小数:

float[] testNums = { 2f, 3.4f, 7.59f, 22f, 37.3f, 104f, 351.7f };

string[] output = new string[testNums.Length];
for (int i = 0; i < testNums.Length; i++) {
    string strNum = testNums[i].ToString("0.#"); //"0.#" is the closest I've found
    output [i] = strNum;
}
Debug.Log(string.Join(", ", output));

结果:

2, 3.4, 7.6, 22, 37.7, 104, 351.7

想要的结果:

2, 3.4, 7.6, 22, 37, 104, 351

有没有办法只用数字格式来实现这一点,或者我必须为此编写代码? (例如:)

if(strNum.Length >= 4)
{
    strNum = strNum.Substring(0,3).TrimEnd('.', ',');
}
c# number-formatting
1个回答
1
投票

没有(据我所知)取决于值的有条件的数字格式,因此必须在代码中完成。您当然可以根据值在代码中自行更改格式。例如:

float[] testNums = { 2f, 3.4f, 7.59f, 22f, 37.3f, 104f, 351.7f };

string[] output = new string[testNums.Length];

string lowValueFormat = "0.#";

for (int i = 0; i < testNums.Length; i++)
{
    string strNum;
    if (testNums[i] < 10)
    {
        strNum = testNums[i].ToString(lowValueFormat);
    }
    else
    {
        strNum = Math.Floor(testNums[i]).ToString();
    }
    output[i] = strNum;
}
Debug.Log(string.Join(", ", output));
© www.soinside.com 2019 - 2024. All rights reserved.