У меня была эта проблема, когда мой SQL-сервер округлялся с 0,5 до 1, пока мое приложение C # этого не делало. Таким образом, вы увидите два разных результата.
Вот реализация с int / long. Это как Java-раунды.
int roundedNumber = (int)Math.Floor(d + 0.5);
Это, вероятно, самый эффективный метод, о котором вы могли бы подумать.
Если вы хотите сохранить его двойным и использовать десятичную точность, тогда это действительно вопрос использования показателей из 10 в зависимости от того, сколько десятичных знаков.
public double getRounding(double number, int decimalPoints)
{
double decimalPowerOfTen = Math.Pow(10, decimalPoints);
return Math.Floor(number * decimalPowerOfTen + 0.5)/ decimalPowerOfTen;
}
Вы можете ввести отрицательный десятичный знак для десятичных точек, и это также слово отлично.
getRounding(239, -2) = 200
В реальном времени = Гарантируемое максимальное время для разрешения. Это могли быть пикосекунды или минуты в зависимости от требований приложения
Это - самая большая проблема StackOverflow: неподготовленные люди отвечают на большое количество вопросов с ответами, которые "звучат правильными" и проголосовались, люди, которые заботятся, корректен ли ответ на самом деле, не извергают ерунду достаточно быстро, чтобы заработать для представителя для фиксации неправильных ответов. Регистрация анонимно из-за ожидаемых предсказуемых реакций.
В реальном времени получает необходимый ответ на событие, завершенное в течение указанного периода времени или Ваши системные сбои.
Люди привыкли думать, что это должно означать 'небольшое количество миллисекунд/микросекунды, но это не обязательно верно - оно зависит от Вашей системы.
Если Ваша система перестанет работать, если она не завершится, она потребовала ответа в течение 30 секунд затем, это 'в реальном времени'.
Для некоторых систем сбой мог быть катастрофическим, например, порождение нескольких смертельных случаев - это описано как очень важная безопасность, например, закрытие атомной электростанции.
Фраза покрытия "в реальном времени" довольно большой патч земли.
Неопределенным определением является "программное обеспечение, которое действует в течение ограниченного времени отклика".
Где граница трудна, например, в инжекционной системе управления автомобиля, программное обеспечение, как говорят, является "жестким реальным временем".
Где граница является мягкой, например, в системе воспроизведения музыки, где изменения до 50 мс терпимы, система, как говорят, является "мягким реальным временем".
Таким образом да, для некоторого определения в реальном времени, Ваша система в реальном времени.
Но Вы, вероятно, собираетесь смеяться над тем, если Вы называете это в реальном времени вокруг кого-либо еще, кто на самом деле работает над системами реального времени, потому что 30 секунд довольно огромны.
Ну, это могло быть большим количеством вопроса о маркетинге, чем технический.
В реальном времени, с точки зрения встроенных аппаратных средств, включает известное установленное максимальное время для обработки входящей информации (прерывания и т.п.).
Вы можете, конечно, задержка секунд заявления 30 как в реальном времени особенно, если доставка упомянутой информации дольше, чем это.
Например, если Ваше "предупреждение" является электронным письмом, которое могло бы провести 10 минут в почтовом сервере или Красном Кресте на мониторе, который пользователи только проверяют каждое полчаса, 30 секунд более, чем достаточно для в реальном времени.
Я думаю один аспект, который определяет в реальном времени, то, что процесс детерминирован - то есть, время отклика приложения полностью предсказуемо на основе исходных данных.
Таким образом, крася очень широкими мазками, любое приложение, находящееся сверху Windows, может только быть "псевдореальным временем", в лучшем случае Вдвойне поэтому, если Ваше приложение работает на своего рода платформе песочницы (Java.NET), где Вы не имеете неограниченного контроля над функциями платформы (например, сборка "мусора").
Мое персональное правило состоит в том, что "в реальном времени" не принадлежит на настольном ПК; это - область PLCs (и да, они могут выполнять Ose как QNX, VxWorx или даже RTLinux).
Другой способ определить "в реальном времени" путем оценки возможностей многих RTOSs (операционные системы реального времени). например, определение QNX здесь. Заметьте, что они приспосабливают POSIX PSE52 Контроллеру В реальном времени 1003.13-2003 стандарта Системного продукта. Большинство встроенных операционных систем обеспечит схожую функциональность.
Определением 'твердых', в реальном времени от моих друзей средств управления - Последняя информация, является неправильная информация. Если это должна быть там каждая 1 с, и это добирается там в 1,1 с, это бесполезно для вычислений.
Я полагаю, что ответ - то, что системы реального времени субъективны, в то "реальное время" просто ограничения своевременности, наложенные требованиями. Хотя ясно что-то, что занимает 2 часа для ответа на запрос, не является реальным временем, 30-секундная задержка могла бы быть достаточно быстрой для квалификации как реальное время.
Я работаю над тем, что я рассматриваю системами реального времени, где, когда случай происходит в системе, это сразу propogated к устройствам в системе, такой, что задержка знания об обновлении на устройстве является продуктом сетевой задержки, и время берут для обновления его данных в оперативной памяти.
Я лично не классифицировал бы что-то с этим опросы для обновлений каждые 30 секунд как в реальном времени. У нас есть веб-приложение как часть перед упомянутой системой, которая делает просто, что, это обновляется каждые 30 секунд, таким образом, пользователю дарят данные, которые являются самое большее 30 старыми секундами. Контрастируйте это с победой формирует equalivent, который обновляется, как только событие имеет место.
Снова, "реальное время" ограничено Вашим определением своевременного ответа.
Я сказал бы, что определение реального времени будет зависеть от контекста. Как с музыкальным реальным временем в качестве примера должны были бы быть миллисекунды, но возможно с Вашим примером реальное время могло быть в течение 30 секунд или около этого. Это - весь родственник.
Я в согласии с John, в Вашем сценарии Вы смотрите по крайней мере 30 секунд задержки, я сказал бы, что это - почти реальное время.
Оперативные соглашения с микросекундами... главным образом вокруг робототехники. Думайте 'рука перемещения 30 микросекунд; сварите 1 000 микросекунд'; как в автомобильном блоке.
Ваши 30 секунд на основе сна Потока или таймера в неоперативной ОС? Если так, затем у Вас есть потенциальное различие. Вы будете считать это отказом, если Вы будете вне того различия (30,01 секунды)? В противном случае затем это не реальное время.
Я думаю, что необходимо посмотреть на определенное решение или часть решения в том, где Вам нужен ответ, чтобы быть в реальном времени. Ответ в режиме реального времени является тем, который воспринят получателем (приложение или в основном конечный пользователь) как являющийся в реальном времени.