Как разделить без остатка на C#?

628
03 октября 2017, 03:13

Как разделить без остатка (не округлить а просто "отрезать" остаток после запятой) на C#?

UPD

Я пытаюсь простой таймер написать для Unity :)

  • Пользователь вводит часы, минуты и секунды, (для каждого своя переменная int).
  • Затем все это преобразуется в общее кол-во секунд и присваивается переменной float.
  • Каждкю секунду отнимается единица с помощью Time.deltaTime (последнее выдает float, поэтому и нужно было хранить секунды во float).
  • После чего секунды снова пересчитываются в часы,минуты и секунды и присваиваются соответствующим переменным.

    Вот тут и появляется проблема: Нужно либо конвертировать секунды из float в int, либо изначально все переменные сделать float но "отрезать" знаки после запятой.

Answer 1

https://ideone.com/DTGGxw

using System;
public class Test
{
  public static void Main()
  {
    double x = 1e11;
    Console.WriteLine((long)x / 60);
    Console.WriteLine(Math.Floor(x / 60));
  }
}

И вообще, нет никакого смысла использовать дробные числа для времени. Используй целые секунды или миллисекунды, как везде.

Answer 2

Понимаю, что это костыль и ужасный способ реализации, но он роботает

int a = 10, b = 3;
float c = a / b; //рекомендую сделать проверку (деление на ноль)
int result = 0; //ответ без остатка
string[] arr = c.ToString().Split(',', '.');
result = Convert.ToInt32(arr[0]);

Еще раз повторяю - это костыль.

Если есть другой способ реализации - предлагайте. Не стоит минусовать данный ответ, лучше свой предложите. Всем удачи :)

READ ALSO
классы и интерфейсы в c#

классы и интерфейсы в c#

ЗдравствуйтеКакая разница между созданием экземпляра класса от интерфейса ? Например (пример взят с msdn), необходимо получить объект Lookup

326
Задача комивояжера

Задача комивояжера

Как можно реализовать алгоритм задачи комивояжера, используя очередь? Нужно найти исчерпывающим поиском в ширинуЯ понимаю как сделать это...

271
Как замутить Checkbox с DataGridView? [требует правки]

Как замутить Checkbox с DataGridView? [требует правки]

Есть WinForms программа он получат данные из БД-ки на DataGridView только при нажатии кнопки, это работает

229