2012-06-21 6 views
0

У меня есть столбец datagridview «total», в котором я делаю сумму ставок соответствующих предметов. Иногда я получаю добавление, например 30.19 рупий или 100.59 рупий, я хочу сделать 30.19 до 30.50 & 100.59 to 101.So может кто-нибудь плз мне помог ..?C#: Как округлить значение float до ближайшего значения float?

я попробовал

   float val = float.Parse(value); 
       total = val; 

       ekunrakam = ekunrakam + total; 
       Math.Round(ekunrakam + 0.5,2); 

но не работает ..

заранее спасибо ..

+3

возможно дубликат [Как округлить до ближайшего 0,5?] (Http://stackoverflow.com/questions/1329426/how-do-i-round-to-the-nearest-0 -5) – James

+0

Что ты пробовал? –

ответ

1

Вы хотите, чтобы Math.Round (Somefloat + 0.5,2) выполнит эту работу.

0

Если вы желая округлить до ближайшего целого числа, как и 100,59 до 101, Я бы сказал вам просто установить вашу переменную float в int. Но почему вы хотите округлить до 30.50? Каковы ваши конкретные правила округления?

+0

if m get 30.19, In ​​india 0.19 paise не имеет никакого смысла. Поэтому я хочу округлить до 0.50 paise.Я рассказываю как о возможностях, которые у меня есть .. – Harshali

2

Обычно с валютой, в тех случаях, когда у вас нет специального типа валюты, вы используете наименьшую единицу валюты, которая существует, paise или центы или что у вас есть.

Кроме того, не используйте поплавки за деньги, или ошибки округления доставят вас. Эти люди предлагают Decimal.

What is the best data type to use for money in c#?

Большинство стран имеют официальный стандарт для округлять дробные суммы валюты, иногда требуется по закону, но они, как правило, некоторый вариантом банкиров округления. Который, как повезет, это поведение по умолчанию Decimal.Round.

http://msdn.microsoft.com/en-us/library/system.decimal.round%28v=vs.71%29.aspx