Stack Overflow на русском Asked by VillyFiki on December 10, 2020
Например просто + складывает два числа и получается 1+2=3, но мне надо склеить, чтобы 1+2=12. Конвертировать в строку, а потом обратно в int не хочется. Я слышал в математике есть такая операция, не помню как называется, но работает также, так что наверняка это есть и в программировании.
Если речь идёт о цифрах (или хотя бы второй элемент - цифра), то
var res = x * 10 + y;
Если это два числа и разрядность второго n
, то
var res = x * Math.Pow(10, n) + y;
Если лидирующие нули не нужны у второго числа, то примерно (могут быть ошибки из-за погрешности вычислений и округления):
var res = x * Math.Pow(10, Math.Ceil(Math.Log10(y + 1))) + y;
или (не уверен в осмысленности):
var p = Math.Floor(Math.Log10(y));
while (p <= y) p *= 10;
var res = x * p + y;
или
var p = 10;
while (p <= y) p *= 10;
var res = x * p + y;
PS: Формулы не проверял, но вроде должны быть такие.
Correct answer by Qwertiy on December 10, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP