Я пытаюсь разделить целое число на десятичный/float/double. Я могу разделить целые числа, просто найти с помощью: int Num1 = 300/2;
, но когда я попытаюсь сделать это «2» десятичным, это не сработает. Я видел, как люди упоминают об этом int Num1 = 300/((float)1.25);
. Это, честно говоря, не имеет для меня никакого смысла ... Я также пробовал int Num1 = Decimal.Divide(300, 1.25);
без везения.Разделите целое число на десятичное число
ответ
Вы пытаетесь сохранить результат в целочисленном размере. Вместо того, чтобы использовать двойной как тип переменной для хранения результата:
double Num1 = 300/2;
double Num1 = 300/1.25;
Проблема заключается в том, что вы пытаетесь сохранить результат на int
. Попробуйте это:
float result = 300/(float)2;
float result = 300/(float)1.25;
Или для более краткости (f
является сигналом для компилятора, что это постоянная float
):
float result = 300/2f;
float result = 300/1.25f;
Обратите внимание, что float
очень отличается от decimal
, и оба имеют свои преимущества. Для того, чтобы использовать десятичную:
decimal result = decimal.Divide(300, 1.25);
Или это (m
является сигналом для компилятора, что это константа decimal
):
decimal result = decimal.Divide(300m, 1.25m);
Обратите внимание, что он делает с '(float)' - это литье одного из операндов в float, так что используемый оператор деления является плавающей точкой. – AaronLS
Вы также можете написать его 'var result = 300/2f' или с двойным' var result = 300/2d' или 'var result = 300/2.0' – Marco
Может ли кто-нибудь объяснить мне, что означают« f »и« m » в уравнениях? – Pacobart
int
может хранить только целые числа. Когда вы делите целое число на десятичное число, результат будет десятичным (даже если вы используете 4.00
из-за того, что хранятся плавающие точки).
Это не будет компилировать
int Num1 = 300/((float)1.25);
Даже если вы литье явное поплавок (в противном случае 1,25 бы double
), вы пытаетесь сохранить его в переменной типа int
. Компилятор не будет делать это автоматически, потому что implicit conversion doesn't exist для него будет отличать float
как int
для вас. Таким образом, вам необходимо либо указать компилятору, что вы не против потери точности и бросить его в качестве ИНТ
int Num1 = (int)(300/((float)1.25));
Или вы можете изменить тип Num1
быть поплавок.
float Num1 = 300/((float)1.25);
Проще говоря:
- Если вы делаете arithmatic операцию (как +, -, *, /) на два номера различного типа, компилятор преобразует "наименьший" тип в «самый большой» тип, который может содержать большую часть информации. Итак, если вы разделите 300 (int) на 1.25 (double), компилятор преобразует 300 в double и разделит оба удвоения. Получаемый тип будет одного типа, так что: double.
- Если вы хотите поместить результат «большего» типа в «меньший» тип (тип, который может содержать меньше информации, например, фракции), вы должны преобразовать этот тип в меньший тип с помощью явного приведения , Итак, если вы хотите поместить double в int, вы должны передать его в int, что приведет к возможной потере информации.
- C# знает много суффиксов, которые можно использовать на постоянные числа, прямо указать, какой тип это число:
- 10U ==> UINT
- 10L ==> длинный
- 10F ==> поплавок
- 10D ==> double
- 10M ==> десятичный.
- 1. Как вы преобразовываете десятичное целое число в шестнадцатеричное целое число?
- 2. Как проверить, делится ли целое число на десятичное число?
- 3. Разделите целое число со знаком на 2
- 4. Целевое число или десятичное число
- 5. jQuery найти целое число и добавить десятичное число
- 6. Как преобразовать десятичное число в целое число в xpath?
- 7. Возвращаем только десятичное число, если это не целое число. JAVA
- 8. Как преобразовать целое число в десятичное число ASP
- 9. Java, как преобразовать десятичное число как строку в целое число
- 10. преобразовать десятичное в целое число в KNOCKOUT
- 11. Как преобразовать большое десятичное число в целое
- 12. Разделите число на случайное число случайных элементов?
- 13. Разделите dict на число (int)
- 14. Regex удалить десятичное только в том случае, если целое число
- 15. Ncalc делить десятичное на десятичное число
- 16. Разделите целое число на время с помощью VBA (Excel)
- 17. Watir, умноженное на десятичное число
- 18. Разделите число на две силы?
- 19. Разделите число на правильный десятичной
- 20. разделите число на 2 рекурсивно
- 21. Как точно отображать десятичное число?
- 22. Как убедиться, что целое число делится на другое целое число
- 23. Lua - целое целое число
- 24. преобразовать отрицательное десятичное число в двоичное число
- 25. Десятичное число вопросов с поплавками и десятичными. Десятичное число
- 26. Konik Zugferd десятичное число
- 27. Нормализовать десятичное число regex
- 28. InputMismatchException, читающий десятичное число
- 29. Среднее число генерирует отрицательное десятичное число
- 30. (Десятичный) x Дифференциальное число Десятичное число (x);
'300/2' представляет собой целое деление, которое является то, что ОП пытается избежать. '300/2.0' лучше. – jaket