Как да получа десетичен резултат от деление?
Здравейте!
Сблъсках се със следния проблем: при използване на знака "/" получавам резултат от целочислено деление, а аз искам да получа десетично число. Това с типа на променливите ли е свързано?
Здравейте!
Сблъсках се със следния проблем: при използване на знака "/" получавам резултат от целочислено деление, а аз искам да получа десетично число. Това с типа на променливите ли е свързано?
Пробвай така:
decimal a = 1.00m / 3.00m;
Console.WriteLine(a);
int b = 1 / 3;
Console.WriteLine(b);
float c = 1f / 3f;
Console.WriteLine(c);
Към делимото или делителя добави .0 към стойността му или го кастни към double ето пример:
5/3.0 или 5/ (double)3
Да, това е свързано с типа променливите. Ако променливите са от тип int (така са дефинирани, парснати), то при делението се получава цяло число без модула.
Например в следния случай по-долу, независимо, че result е дефинирана като дробно число резултатът ще бъде цяло число, защото делимото и делителя са дефинирани като цяло число.
Ето линк към документацията division operator c#
Ето и пример: Резултатът в конзолата от делението (24 / 5) е 4, а не десетична дроб
using System; public class Program { public static void Main() { int val1 = 24; int val2 = 5; double result; result = val1 / val2; Console.Write(result); } }
Променливите трябва да са от тип float/double,за да получиш десетичен резултат