c# 1234和1134比较 允许其中一个数字误差
时间: 2023-08-02 16:33:57 浏览: 38
如果你允许其中一个数字有误差的情况下,可以使用以下代码进行比较:
```
int num1 = 1234;
int num2 = 1134;
int tolerance = 10; // 允许的误差值
if (Math.Abs(num1 - num2) <= tolerance || Math.Abs(num1 - (num2 + tolerance)) <= tolerance) {
Console.WriteLine("两个数字相等或者其中一个数字有误差");
} else {
Console.WriteLine("两个数字不相等且没有误差");
}
```
在这段代码中,我们首先定义了两个数字 `num1` 和 `num2`,以及允许的误差值 `tolerance`。然后我们使用 `Math.Abs()` 函数计算两个数字的差值,如果差值小于等于 `tolerance` 或者其中一个数字加上 `tolerance` 后的值与另一个数字的差值小于等于 `tolerance`,就认为这两个数字相等或者其中一个数字有误差。否则,认为这两个数字不相等且没有误差。
相关问题
c# 两个字符串比较,允许错一个字符
如果你想比较两个字符串,并允许其中一个字符有误差,可以使用以下代码:
```csharp
string str1 = "hello";
string str2 = "helxo";
int tolerance = 1; // 允许的误差值
if (Math.Abs(str1.Length - str2.Length) > tolerance) {
Console.WriteLine("两个字符串长度不相等,无法比较");
} else {
int errors = 0;
for (int i = 0; i < str1.Length; i++) {
if (str1[i] != str2[i]) {
errors++;
if (errors > tolerance) {
Console.WriteLine("两个字符串不相等且有误差");
return;
}
}
}
Console.WriteLine("两个字符串相等或者其中一个字符串有误差");
}
```
在这段代码中,我们首先定义了两个字符串 `str1` 和 `str2`,以及允许的误差值 `tolerance`。然后我们首先比较两个字符串的长度,如果长度差值大于 `tolerance`,就认为这两个字符串不相等,无法比较。否则,我们遍历两个字符串中的每一个字符,如果有字符不相同,就将错误计数器加一,如果错误计数器的值大于 `tolerance`,就认为这两个字符串不相等且有误差。如果遍历结束后错误计数器的值小于等于 `tolerance`,就认为这两个字符串相等或者其中一个字符串有误差。
用C#编写一个只允许输入合法整数和浮点数的正则表达式
当然,我可以帮你编写一个只允许输入合法整数和浮点数的正则表达式。下面是使用C#编写的示例代码:
```csharp
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string input = Console.ReadLine();
// 正则表达式模式
string pattern = @"^[-+]?(\d+(\.\d*)?|\.\d+)$";
// 创建正则表达式对象
Regex regex = new Regex(pattern);
// 判断输入是否匹配正则表达式
if (regex.IsMatch(input))
{
Console.WriteLine("输入合法!");
}
else
{
Console.WriteLine("输入不合法!");
}
}
}
```
在上述代码中,我们使用`Regex.IsMatch`方法来判断输入是否匹配正则表达式。正则表达式模式`^[-+]?(\d+(\.\d*)?|\.\d+)$`可以匹配整数和浮点数,其中:
- `^[-+]?`表示可选的正负号;
- `\d+(\.\d*)?`表示整数或小数部分(小数部分可选);
- `|\.\d+`表示只有小数部分的情况。
你可以根据自己的需求修改代码,并在控制台中输入测试数据来验证正则表达式的效果。