Loading...
moted avatar moted 13 Точки

Как да получа десетичен резултат от деление?

Здравейте!

Сблъсках се със следния проблем: при използване на знака "/" получавам резултат от целочислено деление, а аз искам да получа десетично число. Това с типа на променливите ли е свързано?

Тагове:
0
Programming Basics with C# 24/09/2018 21:18:43
Quake3 avatar Quake3 546 Точки

Пробвай така:

decimal a = 1.00m / 3.00m;
Console.WriteLine(a);

int b = 1 / 3;
Console.WriteLine(b);

float c = 1f / 3f;
Console.WriteLine(c);

 

0
NikolayNeykov92 avatar NikolayNeykov92 617 Точки

Към делимото или делителя добави .0 към стойността му или го кастни към double ето пример:

5/3.0 или 5/ (double)3

0
clipro avatar clipro 73 Точки

Да, това е свързано с типа променливите. Ако променливите са от тип 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);  
 }
}
0
09/10/2018 20:31:57
ValeriST avatar ValeriST 16 Точки

Променливите трябва да са от тип float/double,за да получиш десетичен резултат

 

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.