簡體   English   中英

轉換十進制數字C#

[英]Converting decimal number c#

這可能與其他類似,但是我的理解並不好,所以我試圖看看是否有人可以幫助我理解。 我想更改數字的小數位,例如,如果數字為0.5,我希望將其轉換為.50,同樣,如果它是0.25,則為.25,依此類推,我想這很簡單,但我可以似乎不知道該怎么做? 我的單元測試代碼在下面,第一個通過,但其他未通過

更新了單元測試

[TestFixture]
public class ProbabilityDisplayConverterTests 
{
    public ProbabilityDisplayConverter underTest = new ProbabilityDisplayConverter();

    [Test]
    public void Convert_ConvertsWholeDecimal()
    {
        var value = (string)underTest.Convert(1, typeof(decimal), null, CultureInfo.CurrentCulture);
        Assert.AreEqual("1", value);
    }

    [Test]
    public void Convert_ConvertsHalfToDecimal()
    {
        var value = (string)underTest.Convert(0.5, typeof(decimal), null, CultureInfo.CurrentCulture);
        Assert.AreEqual(".50", value);
    }

    [Test]
    public void Convert_ConvertsDecimal()
    {
        var value = (string)underTest.Convert(0.25, typeof(decimal), null, CultureInfo.CurrentCulture);
        Assert.AreEqual(".25", value);
    }

    [Test]
    public void Convert_ConvertsWholeNumberDecimal()
    {
        var value = (string)underTest.Convert(0.3, typeof(decimal), null, CultureInfo.CurrentCulture);
        Assert.AreEqual(".30", value);
    }
}

編輯

    public class ProbabilityDisplayConverter : IValueConverter
{

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value = value.ToString("G", CultureInfo.InvariantCulture);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

嘗試這個

number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));

參考: https : //msdn.microsoft.com/ru-ru/library/dwhawy9k(v=vs.110).aspx

我不確定我是否想念這個問題,但是為什么不簡單地使用ToString方法的format選項呢?

        (0.5m).ToString(".00");
        (0.15m).ToString(".00");

確實執行OP需求(當然您會得到本地的小數點字符)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM