1
A
回答
5
如果我理解你的要求,你要這樣:
1 + 1 = 11
不是:
1 + 1 = 2
要做到這一點,只投了數字串和將它們連接起來。然後,您可以將結果轉換回數字。
string result = 1.ToString() + 1.ToString(); // or, "1" + "1"
result == "11";
int numberResult = Convert.ToInt32(result);
2
如果您需要將其多次添加在你的代碼,它能夠更好地創造這樣的功能:
public static int JoinNumber(int x, int y)
{
int z = 0;
string temp = Convert.ToString(x) + Convert.ToString(y);
z = Convert.ToInt32(temp);
return z;
}
或
public static int JoinNumber(int x, int y)
{
return Convert.ToInt32(Convert.ToString(x) + Convert.ToString(y));
}
您需要創建長期過載和其他類型根據您的要求。
3
您可以通過使用指數和對數避免串實例化和轉換:
public static int Concat(int x, int y)
{
return x * (int)Math.Pow(10, Math.Floor(Math.Log(y, 10)) + 1) + y;
}
此作品由10的冪有一樣多的零作爲y
具有數字乘以x
,那麼就總結y
到它。在數學上:X×10 ⌊log ý⌋+ 1 + ÿ。
這將導致一個結果,兩個數字的小數表示看起來已經連接在一起。 例如:
Concat(1, 1) : 1 * 10 + 1
Concat(3, 54) : 3 * 100 + 54
Concat(28, 999) : 28 * 1000 + 999
Concat(76, 84215) : 76 * 100000 + 84215
如果你知道你的號碼通常是小,你可以寫熱路徑,以避免計算昂貴Pow
和Log
操作:
public static int Concat(int x, int y)
{
if (y < 10) return x * 10 + y;
if (y < 100) return x * 100 + y;
if (y < 1000) return x * 1000 + y;
if (y < 10000) return x * 10000 + y;
return x * (int)Math.Pow(10, Math.Floor(Math.Log(y, 10)) + 1) + y;
}
+0
我的意思是......你沒有錯。 – Steve
1
所有你想要的是:
string result = String.Concat(1, 1);
真的,就是這樣。
如果你想回去的整數值的模糊的原因:
int result = Int32.Parse(String.Concat(1, 1));
提防溢出。
相關問題
- 1. 如何從一個號碼增加到另一個號碼?
- 2. 如何一次向號碼計數器添加一個號碼?
- 3. 如何在Array的每個元素的末尾添加逗號
- 4. 添加系列(行?)號碼到現有列數據的末尾
- 5. 在每行末尾添加逗號
- 6. 找到另一個號碼的號碼?
- 7. 在一個字符串的末尾匹配特定號碼
- 8. Twilio號碼到另一個twilio號碼
- 9. 給元素ID號碼,然後在末尾插入一個
- 10. 在末尾添加分號那些沒有一個
- 11. 如何在末尾檢索沒有偏移號碼的時間?
- 12. 如何在函數的末尾變量添加逗號
- 13. 如何在編輯文本末尾添加問號(如quora中的問號)?
- 14. 如何有效地將逗號添加到列表的末尾?
- 15. Visual Basic - 如何檢查一個號碼進入另一個號碼的次數
- 16. SQL添加「 - 」號-alphates號碼
- 17. 如何添加3個號碼?
- 18. 在另一個末尾添加一個向量
- 19. 如何將目標添加到src引號末尾
- 20. Hadoop添加號碼
- 21. Jsp添加號碼
- 22. 如何在短信中添加號碼?
- 23. 添加一個C#參考號碼
- 24. 在每條評論行的末尾添加一個完整的句號(句點)
- 25. 如何使用Node.js將號碼添加到DynamoDB號碼集
- 26. 在值的末尾添加新的數字和逗號
- 27. 在`return`的末尾添加分號會有所作爲嗎?
- 28. 在截斷文本的末尾添加省略號
- 29. 在EditText的末尾添加單位符號
- 30. 如何增加到下一個號碼
你甚至在問什麼? –