如何在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}有什么优雅的方法吗 给定一个浮点a.b,如果a=5,b=3,那么我需要一个浮点数组{0.3,1.3,2.3,3.3,4.3,5.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
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");
}