转换十进制数c#

本文关键字:十进制数 转换 | 更新日期: 2023-09-27 18:14:18

这可能是类似于其他的东西,但我的理解不是很好,所以我想看看是否有人能帮助我理解。我想改变一个数字的小数点,例如,如果这个数字是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();
    }
}

转换十进制数c#

我不确定我是否在这个问题中错过了什么,但是为什么不简单地使用ToString方法的格式选项呢?

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

做了OP需要的(当然你得到了你本地的小数点字符)

试试这个

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

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