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?非常感谢。
如果你不想使用字符串,你可以这样做:
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");