找出十进制数据类型中是否存在小数点

时间:2011-09-23 15:09:34

标签: .net

我有一个十进制数据类型。

我得到的格式有多种格式,如25或25.00。

如何检查给定十进制数中的小数点是否为presnet?

如果不存在,我必须在号码上添加.00。

2 个答案:

答案 0 :(得分:4)

这有点像黑客,但我相信这无条件地做你想要的事情:

decimal twoDp = decimal.Round((original / 100) * 100, 2);

这对我来说当然有用:

using System;

class Test
{
    static void Main(string[] args)
    {
        ShowRounded(25m);
        ShowRounded(25.0m);
        ShowRounded(25.00m);
        ShowRounded(25.000m);
    }

    static void ShowRounded(decimal d)
    {
        Console.WriteLine(decimal.Round((d / 100) * 100, 2));
    }    
}

或者,如果这只是 用于显示:

string formatted = value.ToString("0.00");

或以货币形式显示当前的文化设置:

string formatted = value.ToString("c");

答案 1 :(得分:1)

您正在以多种格式“获取价值”。换句话说你得到了字符串?我不确定你最终要求的是什么,但是如果你想将数字格式化为货币,你可以这样做:

decimal d = 25;
Console.WriteLine("{0:c}", d);

string d2 = "$25";
Console.WriteLine("{0:c}", decimal.Parse(d2, NumberStyles.Currency));

string d3 = "$25.00";
Console.WriteLine("{0:c}", decimal.Parse(d3, NumberStyles.Currency));