字符数字直接转换为数字函数
时间: 2024-11-25 07:13:16 浏览: 13
在许多编程语言中,都有现成的函数可以直接将包含数字字符的字符串转换为数值。下面是一些常见语言的例子:
### Python (str.isdigit() 和 int() 或 float())
```python
def string_to_number(s):
if s.isdigit(): # 判断字符串是否全由数字组成
return int(s) # 如果是整数
elif '.' in s and s.replace('.', '').isdigit(): # 如果有小数点
return float(s)
else:
raise ValueError("无法转换为数字")
# 使用示例
s = "123abc"
try:
number = string_to_number(s)
except ValueError as e:
print(e)
```
### JavaScript (parseInt() 或 parseFloat())
```javascript
function stringToNumber(s) {
return Number.isNaN(parseFloat(s)) ? NaN : parseFloat(s);
}
// 示例
let s = "123abc";
console.log(stringToNumber(s)); // 如果字符串能转换成功,会返回123,否则返回NaN
```
### Java (Integer.parseInt() 或 Double.parseDouble())
```java
public static double stringToDouble(String s) {
try {
return Double.parseDouble(s);
} catch (NumberFormatException e) {
throw new IllegalArgumentException("无法转换为数字", e);
}
}
// 示例
String s = "123.45abc";
double number = stringToDouble(s);
```
### C++
```cpp
#include <string>
#include <cctype>
int stringToInt(const std::string& str) {
int result = 0;
bool isNegative = false;
if (str[0] == '-') {
isNegative = true;
++str.begin(); // 移动到第一个有效字符
}
for (const auto& c : str) {
if (!std::isdigit(c)) {
throw std::invalid_argument("无法转换为数字");
}
result *= 10;
result += c - '0';
}
return isNegative ? -result : result;
}
```
阅读全文