如果等于“.00”,则删除十进制表单字符串

时间:2016-10-25 04:20:10

标签: c# string-formatting

我在尝试取出字符串的小数部分时遇到了很多问题, 字符串来自我视图中的 var type ,如下所示:

 var temp = dashList[index];
  @PrintSection(actualDate, Model, String.Format("{0:0.000}", temp.Rubro))**

temp.Rubro是我的字符串部分,可以是“。00”“。XX”

但是我只需要在字符串的小数部分为“。00”时 因为我有一些仪表表的值有重要的小数部分。

是否有办法在字符串的十进制部分等于“。00” ???

我想要得到的输出是:

From XX.00 -> XX
From XX.12 -> XX.12

这两种都在我的名单上

4 个答案:

答案 0 :(得分:1)

试试这个:

var temp = dashList[index];
@PrintSection(actualDate, Model, String.Format("{0:0.000}", temp.Rubro).Replace(".00", ""))

答案 1 :(得分:0)

您可以尝试使用

String.Format("{0:G29}", decimal.Parse(temp.Rubro)))

以下所有格式都能达到相同的效果。

string.Format("{0:G29}", decimal.Parse("2.00"))
decimal.Parse("2.00").ToString("G29")
2.0m.ToString("G29")

您可以ToString()使用General ("G") Format Specifier来获得所需的结果。使用具有指定精度的此格式字符串时,将截断尾随零。为了防止在任何情况下进行舍入,您需要将精度设置为小数的最大允许值(29)。

答案 2 :(得分:0)

简单的技巧......

您可以解析字符串,它会自动删除小数位 尝试以下

 private static void ParseDouble()
    {
        string sDouble = "12.00";
        double dValue = double.Parse(sDouble);
        Console.WriteLine(dValue.ToString());


        sDouble = "12.14";
        dValue = double.Parse(sDouble);
        Console.WriteLine(dValue.ToString());
    }

您的输出将是

12
12.14

希望这有帮助。

答案 3 :(得分:0)

我建议您使用accounting.js插件,这非常简单。我在一些项目中使用它,截至今天我不能抱怨。否则,你可以这样做,

var x = temp.Replace(".00","").Trim();