2014-01-30 3 views
-6

Почему это не работает?C# Math Issue With Division

DiscountedPrice = 10 
double DiscountedPrice = ((double)percentDiscounted/100); 

Это приводит к 0 не 0,1, как я ожидал.

+2

вы имели в виду установить 'percentDiscounted' в верхней части, а не' DiscountedPrice'? – tabstop

+4

Пожалуйста, покажите короткую, но полную программу, демонстрирующую проблему. И, пожалуйста, не используйте 'double' для значений валюты: вместо этого используйте' decimal'. (Было бы странно, если * цена * была бы 'percentDiscounted'/100, кстати. Это пропорция * скидки, а не цена.) –

+4

Работает для меня. Fiddle: http://dotnetfiddle.net/CUoaWL – McAden

ответ

6

Это должно работать должным образом, если вы пробовали это.

int percentDiscounted = 10; 
double discountedPrice = percentDiscounted/100.0; 
Console.WriteLine(discountedPrice); 

Вы можете неявно преобразовать int в double, нет необходимости, чтобы бросить его.

Также вы можете использовать double или int тип для percentDiscounted.

Выход

0,1

+0

Спасибо большое :) – Harbz96

+1

@ Harbz96 Нет проблем. О, и не забудьте нажать кнопку галочки на этом ответе. :) – puretppc