c#将double转换为字符串,并在一个表达式中检查长度

本文关键字:一个 表达式 检查 转换 double 字符串 | 更新日期: 2023-09-27 18:21:55

有没有办法用一个表达式替换第二行和第三行?

double oddOrEven = 1231713.0;
string myString = oddOrEven.ToString();
if (myString[myString.Length - 3] == '7')
    Console.WriteLine("The third digit is a 7");

与其创建一个新的字符串变量并使用它在IF中进行检查,我只想做这样的事情:

double oddOrEven = 1231713.0;
if (oddOrEven[oddOrEven.Length - 3].ToString() == '7')
    Console.WriteLine("The third digit is a 7");

我意识到这不起作用,但有没有什么方法可以安排它,这样我就可以获得我想要的效果,而不必创建和使用新的变量?也许我不应该使用ToString?非常感谢。

c#将double转换为字符串,并在一个表达式中检查长度

如果你不想使用字符串,你可以这样做:

if (Math.Truncate((oddOrEven / 100)) % 10 == 7)
Console.WriteLine("The third digit is a 7");

这应该能在中工作

if (oddOrEven.ToString()[oddOrEven.ToString().Length - 3] == '7')
    Console.WriteLine("The third digit is a 7");

然而,由于ToString()被调用了两次,因此它的效率可能不会更高。此外,代码变得不那么容易阅读,但只要它有效,并且您知道后果,就由您决定:)

Linq版本

   if (oddOrEven.ToString().Reverse().ToArray()[2] == '7')
            Console.WriteLine("The third digit is a 7");