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

时间:2017-08-22 08:21:40

标签: c#

我的价值如下:

decimal val = 1.100;

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

这就是我的想法:

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

2)按点分割。

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

示例输入和输出:

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

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

注意:我不想做任何事情。

2 个答案:

答案 0 :(得分:5)

您可以使用custom numeric format string

val.ToString("0.0##")

答案 1 :(得分: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

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