如果第一个小数点第一个值为0,如何忽略值,否则如果大于0则忽略它?

我有以下价值:

decimal val = 1.100; 

现在我想要做的是,如果我在第一个小数点后的值为0,那么我想只取1.1并忽略rest,如果我有1.11那么我想取整个1.11

这就是我的想法:

1)将十进制转换为字符串。

2)逐点拆分。

3)检查长度是否为2,如果第二个位置大于0,则对于十进制值1.11取整数11,否则如果十进制像这样1.10则取1.1否则取小数为1000的1.0

样本输入和输出:

 1.000 // output 1.0 1.100 // output 1.1 1.110 // output 1.11 1.111 // output 1.111 1.102 // output 1.102 

但这是我想要避免的脏逻辑。有没有内置的方式或更好的方法来做到这一点?

注意:我不想做任何类型的回合。

您可以使用自定义数字格式字符串 :

 val.ToString("0.0##") 

希望你喜欢这个逻辑。 请试试这个。

  double val = 1.002; string output = !val.ToString().TrimEnd('0').Contains('.') ? string.Format("{0}.0", val) : val.ToString().TrimEnd('0'); 

如果值为1.00,那么我的输出将为1.0

然后,您可以将此字符串转换为其他数据类型。