Fahid Zahoor Ответов: 1

Я хочу, чтобы округлить число близко к 5 В С#


привет у меня есть этот номер
10.02
10.03
10.04
10.05
10.06
10.07
10.08
10.09
10.10
теперь я хочу округлить это число точно так же, как
10.02=>10
10.03=>10
10.04=&ГТ;10.05
10.05=&ГТ;10.05
10.06=&ГТ;10.05
10.07=&ГТ;10.05
10.08=&ГТ;10.10
10.09=&ГТ;10.10
есть ли какая-нибудь функция в c#, пожалуйста, скажите мне, как я могу это сделать

Что я уже пробовал:

я уже пробовал этот код, но он не показывает результат в соответствии с моими требованиями

double n= Math.Round(10.04/ 5.0) * 5;

он показывает результат 10, но я хочу, чтобы результат n=10.05
пожалуйста, помогите мне

jimmson

Почему бы 10.04 округлить до 10.05? В этом нет никакого смысла.

Fahid Zahoor

какое-то время клиент бил сумма 10.04, но мы берем 10.05 если таможенные bil является 10.02 затем мы принимаем только с 10: 00 вы можете понять

jimmson

Посмотрите на это https://docs.microsoft.com/en-us/dotnet/api/system.math.round?view=netframework-4.8 чтобы получить некоторую информацию по математике.Круглый метод и посмотреть ваши варианты. Однако изменение 10.04 на 10.05 не имеет ничего общего с округлением. Вам нужно будет реализовать свой собственный алгоритм.

Fahid Zahoor

спасибо человеку за ваш ответ теперь я пишу свой собственный алгоритм, когда я закончу, то я также поделюсь с вами, так что объясните мне, что мой процесс написания алгоритма является профессиональным или нет.

George Swan

Поскольку ваш метод округления несколько нетрадиционен, вам, вероятно, понадобится таблица поиска, чтобы вернуть небольшое число (Эпсилон), которое может быть положительным или отрицательным, добавленное к рассматриваемому числу для получения требуемого округления. Для этого вам нужно получить последнюю цифру вашего номера и использовать ее в качестве значения индекса для таблицы поиска.Ваши числа имеют 2 дробные цифры, так что вы можете получить последнюю цифру, умножив число на 10 в степени 2 =100 и взяв модуль 10 этого числа. Когда вы делаете умножение, округлите результат, чтобы вернуть число без фракционных цифр.

1 Ответов

Рейтинг:
1

Patrice T

Цитата:
он показывает результат 10, но я хочу результат n=10.05
пожалуйста, помогите мне

Итак, вы попробовали 1 вещь, это не тот результат, которого вы ожидаете, поэтому вы отказываетесь и зовете на помощь.
В работе по программированию есть 2 вещи отлаживать и эксперимент.
Если вы поэкспериментируете, то увидите, что ваша формула дает результат 0, 5, 10, 15, 20 ...
Попробуйте значения, отличные от 5, и посмотрите, что вы получите, это не должно быть долго, прежде чем вы найдете правильное значение.

Это действительно не сложно.
Этот эксперимент-обучение методом проб и ошибок, он обычно улучшает вашу кривую обучения, но вы должны делать эту работу сами.