Помогите с конвертацией суммы к нужному порядку C#

rol

Client
Регистрация
19.09.2017
Сообщения
42
Благодарностей
7
Баллы
8
если в сумме меньше 8 знаков
пример :
12345 = 0.00012345
123456 = 0.00123456
1234567 = 0.01234567
12345678 = 0.12345678
Нули добавляются в начало суммы и количество знаков должно быть равно 10 знакам, точка всегда после первого нуля
---------
А если сумма больше 8 знаков 1800000000 то должно получится 18.00000000 ставится точка после 8 знаков с конца чисел.
пример :
1800000000 = 18.00000000
129000000 = 1.29000000
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 385
Баллы
113
сделал правильно, потом решил исправить, потом пока курил понял, что в первый раз правильно было, а потом нет)
устал. рабочий день окончен
C#:
string num = "12345";
return string.Join("", num.Reverse().Concat(Enumerable.Repeat('0',  num.Length < 9 ? 9 - num.Length : 0)).Reverse().Take(9)).Insert(1, ".");
 
Последнее редактирование:
  • Спасибо
Реакции: rol

rol

Client
Регистрация
19.09.2017
Сообщения
42
Благодарностей
7
Баллы
8
сделал правильно, потом решил исправить, потом пока курил понял, что в первый раз правильно было, а потом нет)
устал. рабочий день окончен
C#:
string num = "12345";
return string.Join("", num.Reverse().Concat(Enumerable.Repeat('0',  num.Length < 9 ? 9 - num.Length : 0)).Reverse().Take(9)).Insert(1, ".");
С первым вариантом работает
А если сумма больше 8 знаков 1800000000 то должно получится 18.00000000 ставится точка после 8 знаков с конца чисел.
пример :
1800000000 = 18.00000000
129000000 = 1.29000000
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 385
Баллы
113
Да, прозевал условие. Почему-то привязался в начале к общей длине в 10 символов вместе с точкой.
C#:
return string.Join("",num.Reverse().Concat(Enumerable.Repeat('0', num.Length < 9 ? 9 - num.Length : 0)).Reverse()).Insert(num.Length > 8 ? num.Length - 8 : 1, ".");
 
Последнее редактирование:
  • Спасибо
Реакции: Ilshakin и rol

rol

Client
Регистрация
19.09.2017
Сообщения
42
Благодарностей
7
Баллы
8
Теперь только работает если сумма больше 8 знаков
а если в сумме меньше 8 знаков ошибка
 
  • Спасибо
Реакции: Alexmd

rol

Client
Регистрация
19.09.2017
Сообщения
42
Благодарностей
7
Баллы
8
Супер большое спасибо работает как часы
 
Последнее редактирование:
  • Спасибо
Реакции: Alexmd

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)