Как округлить float в большую сторону

Andr123

Client
Регистрация
08.01.2016
Сообщения
75
Благодарностей
10
Баллы
8
Всем привет! Как округлить 0.02 в большую сторону до 0.1 ?
Если делаю str dig = Math.Round(amount, 1).ToString().Replace(",","."); То получается 0, а надо не 0
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
113
В Math.Round из .net framework нет поддержки под такую задачу ToPositiveInfinity, только в Core...:dg:
Боюсь тут потребуются костыли, если не сторонняя библиотека.
 
  • Спасибо
Реакции: Andr123

Andr123

Client
Регистрация
08.01.2016
Сообщения
75
Благодарностей
10
Баллы
8
В Math.Round из .net framework нет поддержки под такую задачу ToPositiveInfinity, только в Core...:dg:
Боюсь тут потребуются костыли, если не сторонняя библиотека.
Спасибо за ответ! А куда копать или как сделать с костылями? Знаний мало, вроде не сложная задача, но я на ней завис (
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
113
Спасибо за ответ! А куда копать или как сделать с костылями? Знаний мало, вроде не сложная задача, но я на ней завис (
Попробуйте обратиться на профильный форум, напишите, что у вас .net framework 4.8 (лучше заранее установить).
Ещё есть https://t.me/DotNetRuChat, но могут и не ответить.
 
  • Спасибо
Реакции: Andr123

Andr123

Client
Регистрация
08.01.2016
Сообщения
75
Благодарностей
10
Баллы
8
Попробуйте обратиться на профильный форум, напишите, что у вас .net framework 4.8 (лучше заранее установить).
Ещё есть https://t.me/DotNetRuChat, но могут и не ответить.
Спасибо за совет группы. Помогли в тг группе dotnet таким решением, может кому пригодится:

float amount = 0.025858585f;
float sd = (float)Math.Ceiling(amount * (float)Math.Pow(10, 1)) / (float)Math.Pow(10, 1);
return sd;
 
  • Спасибо
Реакции: Yuriy Zymlex

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
113
Спасибо за совет группы. Помогли в тг группе dotnet таким решением, может кому пригодится:

float amount = 0.025858585f;
float sd = (float)Math.Ceiling(amount * (float)Math.Pow(10, 1)) / (float)Math.Pow(10, 1);
return sd;
Разработчики предупредили - нужно быть аккуратнее, при некоторых значениях может приводить к переполнению (и падению шаблона).
 

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