Как да получа десетичен резултат от деление?
Здравейте!
Сблъсках се със следния проблем: при използване на знака "/" получавам резултат от целочислено деление, а аз искам да получа десетично число. Това с типа на променливите ли е свързано?
Здравейте!
Сблъсках се със следния проблем: при използване на знака "/" получавам резултат от целочислено деление, а аз искам да получа десетично число. Това с типа на променливите ли е свързано?
Пробвай така:
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,за да получиш десетичен резултат