TransWikia.com

Есть ли какая-нибудь операция для склеивания чисел. Не сложение двух чисел, а склеивание их

Stack Overflow на русском Asked by VillyFiki on December 10, 2020

Например просто + складывает два числа и получается 1+2=3, но мне надо склеить, чтобы 1+2=12. Конвертировать в строку, а потом обратно в int не хочется. Я слышал в математике есть такая операция, не помню как называется, но работает также, так что наверняка это есть и в программировании.

One Answer

Если речь идёт о цифрах (или хотя бы второй элемент - цифра), то

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP