我们说我有以下代码:
int digit1 = 1;
int digit2 = 3;
我需要组合两个整数,导致浮点数等于13.0f
。这可能很容易,因为我是C#的新手并从一本书中学习它,但它是如何完成的?
示例:
int digit1 = 3;
int digit2 = 6;
float result = combine_integers (digit1, digit2);
// result = 36
注意: 我实际上并不需要一个功能。我只是为了这个例子而这样做。
答案 0 :(得分:7)
float combine_integers (int digit1, int digit2)
{
return 10*digit1 + digit2;
}
<强> 实施例 强>
combine_integers(1, 3) ==>
10 * 1 + 3 ==>
10 + 3 ==>
13
combine_integers(3, 6) ==>
10 * 3 + 6 ==>
30 + 6 ==>
36
答案 1 :(得分:0)
如果你的整数是单个数字,那么abelenky上面的答案就是为你做最快的。如果它们不是单个数字,那么您可以像上面那样执行string.Format(),但也有一些未被覆盖的边缘情况,例如负值或两个值都是0
上面的字符串操作可能会产生诸如&#34; 00&#34;,&#34; 5-1&#34;之类的结果,或者因无法解析字符串结果而抛出错误。在{5,-1}的情况下,最终可能会得到49。
我要做的是掩盖我的基础并假设如果你使用负数,你需要绝对值。此代码还涵盖了单个数字的基本情况,但为您提供了一些灵活性,以便combine_integers(12,34)返回1234.0f。
static float combine_integers (int digit1, int digit2)
{
int checker = Math.Abs(digit2);
int result = Math.Abs(digit1);
do
{
result *= 10;
checker /= 10;
} while(checker>0);
result += Math.Abs(digit2);
return (float)result;
}
答案 2 :(得分:-3)
private static float combine_integers(int a, int b)
{
return float.Parse(a.ToString() + b.ToString());
}
答案 3 :(得分:-3)
试试这段代码:
int digit1 = 3;
int digit2 = 6;
string concat = string.Format("{0}{1}", digit1, digit2);
float result = float.Parse(concat);