2013-03-12 2 views
1

У меня есть свойство, которое имеет десятичный тип данных, скажем, «Интерес», тогда у меня есть другое свойство строкового типа, скажем, «InterestString».Удалить Незначительные десятичные знаки при преобразовании в строку (C#)

Свойства

public decimal Interest { get; set; } 
public string InterestString { get; set; } 

Я хочу, чтобы присвоить значение интереса к InterestString, так что я сделал следующее. Например предположим Процентный имеет значение 4 (без десятичных знаков):

InterestString = Interest.ToString(); 

Если преобразование завершено мой InterestString становится «4.000», но значение моего интереса только 4 без .0000.

Я хочу сохранить формат даже после преобразования. Как я могу избавиться от этих незначительных десятичных знаков?

Если я что-то вроде этого

InterestString = Interest.ToString("N0"); 

Это даст мне InterestString = "4"; But what if I have Interest 4.5? This will give me InterestString = "5" `(округляется до десяти).

Если я сделаю Interest.ToString("N2"), это даст мне еще 2 незначительных десятичных знака. Поведение, которое я хочу, - удалить несоответствующие десятичные знаки.

Пожалуйста, помогите.

+0

Вы пытались «Interest.ToString (« 0. # »);'? – Guillaume

ответ

7

Я не думаю, что System.Decimal имеет метод Normalize, который в основном то, что вы хотите. Если вы знаете, сколько знаков после запятой в большинстве вы можете использовать:

string x = Interest.ToString("0.######"); 

с так много # знаков, как вы заинтересованы в только значащие цифры будут заполнены:.

using System; 

class Test 
{ 
    static void Main() 
    { 
     ShowInterest(4m); // 4 
     ShowInterest(4.0m); // 4 
     ShowInterest(4.00m); // 4 
     ShowInterest(4.1m); // 4.1 
     ShowInterest(4.10m); // 4.10 
     ShowInterest(4.12m); // 4.12 
    } 

    static void ShowInterest(decimal interest) 
    { 
     Console.WriteLine(interest.ToString("0.#####")); 
    } 
} 
+0

Как вам удастся отредактировать свои ответы, и он не показывает, что сообщение было отредактировано? – Guillaume

+2

@Guillaume: Редактирование в течение первых пяти минут отправленного ответа не отображается. –

+0

Спасибо, что это действительно то, что я хочу. –

Смежные вопросы