我有一个范围为
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('.', ',');
}
没有(据我所知)取决于值的有条件的数字格式,因此必须在代码中完成。您当然可以根据值在代码中自行更改格式。例如:
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));