如何在C#中将6.3拆分为0.3,1.3,2.3,3.3,4.3,5.3,6.3?

如何在C#中将6.3拆分为0.3,1.3,2.3,3.3,4.3,5.3,6.3?,c#,C#,在C#中输入浮点6.3并输出浮点数组{0.3,1.3,2.3,3.3,4.3,5.3,6.3}有什么优雅的方法吗 给定一个浮点a.b,如果a=5,b=3,那么我需要一个浮点数组{0.3,1.3,2.3,3.3,4.3,5.3} input:3.2 -> a float output:{0.2,1.2,2.2,3.2} -> a float array 我想试试这样的东西: double originalNumber = 6.3d; double integralPart = M

在C#中输入浮点6.3并输出浮点数组{0.3,1.3,2.3,3.3,4.3,5.3,6.3}有什么优雅的方法吗

给定一个浮点a.b,如果a=5,b=3,那么我需要一个浮点数组{0.3,1.3,2.3,3.3,4.3,5.3}

input:3.2  -> a float 
output:{0.2,1.2,2.2,3.2} -> a float array

我想试试这样的东西:

double originalNumber = 6.3d;
double integralPart = Math.Truncate(originalNumber); // this is now 6.0
double fraction = originalNumber - integralPart; // this is now 0.3

List<double> results = new List<double>();
for (int i = 0; i <= integralPart; i++)
{
    double newNumber = i + fraction;
    results.Add(newNumber);
}
double originalNumber=6.3d;
二重积分部分=数学截断(原始数);//现在是6.0
双分数=原始数-整数部分;//现在是0.3
列表结果=新列表();
对于(int i=0;i可能:

float f = 6.3f;
float[] ff = Enumerable.Range(0, (int)Math.Ceiling(f))
    .Select(i => (float)Math.Round(i + (f - (int)f), 1))
    .ToArray(); 


我真的不知道,但是像这样的事情

private static List<float> Test(float input)
    {
        var list = new List<float>();
        while (input> 0)
        {
            list.Add(input);
            input--;
        }
        return list;
    }
私有静态列表测试(浮点输入)
{
var list=新列表();
while(输入>0)
{
列表。添加(输入);
输入--;
}
退货清单;
}
你在这里:

var arr = GetElegantRange(f).OrderBy(_ => _).ToArray();

public static IEnumerable<float> GetElegantRange(float input)
{
    while (input > 0)
        yield return input--;
}
var arr=GetElegantRange(f).OrderBy(=>880;).ToArray();
公共静态IEnumerable GetElegantRange(浮点输入)
{
while(输入>0)
收益-收益投入;
}
我的版本:

float[] getFloatStuff(float num) {
    float[] arr = new float[(int)num + 1];

    for (int i = arr.Length - 1; i >= 0; i--)
        arr[i] = num--;

    return arr;
}

可以使用LinQ执行以下操作:

static float[] Function(float value)
{
  var max = (int)value;
  var remainder = value - max;

  return Enumerable.Range(0, max).Select(n => n + remainder).ToArray();
}
别忘了加上

使用System.Linq

这个问题的“完美答案”是:

float[] MyFunction(float arg)
{
    if (arg == 6.3)
    {
        return new float[]{0.3,1.3,2.3,3.3,4.3,5.3,6.3};
    }
    if (arg == 5.3)
    {
        return new float[]{0.3,1.3,2.3,3.3,4.3,5.3};
    }
    throw new ArgumentException("Not defined what to do in such situation");
}

请记住,答案总是与问题=)的质量相同。

这应该是什么样的“分裂”呢?老实说,我不明白你想在这里做什么……我想问题是这样的:给定
a.b
你如何从
0.b
a.b
-所以如果
a=8
b=2
,那么
0.2,1.2,2.2,3.2,4.2,5.2,6.2,7.2,8.2
是的@贝洛吉,你说得对!split总是需要一个DELIMETER来应用split。你的DELIMETER是吗?或者你想如何分割这个?这是我喜欢的-一个没有人理解的简短的一行:-)这也是一个很好的一行:-在某种程度上,人们可以从这个答案中学到很多关于真实软件开发人员生活的东西…是的,不幸的是,我经常看到这样的代码,甚至更经常看到这样的需求=((.只是想指出,未定义的问题导致未定义的答案=)。顺便问一下,其他人是如何猜到其他情况下需要什么的-可能完全是其他情况,不能保证…甚至数学都说我们无法从两个测试案例中构建完整的序列
float[] MyFunction(float arg)
{
    if (arg == 6.3)
    {
        return new float[]{0.3,1.3,2.3,3.3,4.3,5.3,6.3};
    }
    if (arg == 5.3)
    {
        return new float[]{0.3,1.3,2.3,3.3,4.3,5.3};
    }
    throw new ArgumentException("Not defined what to do in such situation");
}