将数据中的数值字符串转为整数或浮点数: 若当前数值字符串中的数据是非负整数时,转为int类型;若当前数值字符串中的数据不是非负整数时转为float类型
时间: 2023-06-13 07:07:21 浏览: 112
可以Python中的isdigit()函数来判断字符串是否是非负整数,如果是则使用int()函数转换为整数,否则使用float()函数转换为浮点数。示例代码如下:
```python
def str_to_num(str_num):
if str_num.isdigit():
return int(str_num)
else:
return float(str_num)
# 示例
str1 = '123'
str2 = '3.14'
num1 = str_to_num(str1)
num2 = str_to_num(str2)
print(type(num1), num1) # <class 'int'> 123
print(type(num2), num2) # <class 'float'> 3.14
```
相关问题
有关数据类型说法错误的是:python数据类型只包括数字类型、字符串类型和布尔类型。100,-756他们是整数类型也是数字类型。hello是字符串类型。布尔类型中只有true和false两种值
这个说法是错误的。
在Python中,数据类型不仅包括数字类型、字符串类型和布尔类型,还包括列表(list)、元组(tuple)、字典(dict)等复合类型。下面简单介绍一下这些类型:
- 数字类型(numeric type):包括整数(int)、浮点数(float)、复数(complex)等。
- 字符串类型(string type):用于表示文本信息,由一系列字符组成。
- 布尔类型(boolean type):表示真假值,只有两个取值:`True`和`False`。
- 列表类型(list type):用于表示一系列有序的值,可以包含多种类型的元素。
- 元组类型(tuple type):类似于列表,但是一旦创建就不能修改,因此更安全。
- 字典类型(dictionary type):用于表示一组键值对,可以通过键来快速访问对应的值。
此外,说法中对于整数类型和布尔类型的描述也是不准确的。在Python中,整数是数字类型的一种,包括正整数、负整数和零。而布尔类型只有两个取值,分别为`True`和`False`,而非只有`true`和`false`两种。
C语言负浮点数转字符串不用sprintf
实现负浮点数转字符串可以使用以下方法:
1. 首先将浮点数转换为整数,将小数部分乘以10的精度次方,再四舍五入取整,得到一个整数。
2. 对于负数,先将符号保存起来,然后将整数取绝对值。
3. 将整数转换为字符串,可以使用以下方法:
a. 用一个数组保存每一位的数字,从个位开始,依次除以10取余,直到整数为0为止。
b. 将每一位的数字转换为字符,存储到另一个数组中。
c. 如果是负数,在最前面加上负号。
4. 对于小数部分,将整数转换为字符串后,根据精度在末尾添加小数点和后面的数字。
下面是一个示例代码:
```
#include <stdio.h>
#include <string.h>
void reverse(char s[]) {
int i, j;
char temp;
for (i = 0, j = strlen(s)-1; i < j; i++, j--) {
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
void itoa(int n, char s[]) {
int i = 0;
do {
s[i++] = n % 10 + '0';
} while ((n /= 10) > 0);
s[i] = '\0';
reverse(s);
}
void ftoa(float f, int precision, char s[]) {
int i, sign, integer, fraction;
char temp[20];
sign = (f < 0) ? -1 : 1;
integer = (int)(f * sign);
fraction = (int)((f - integer * sign) * pow(10, precision) + 0.5);
itoa(integer, s);
if (sign == -1) {
memmove(s+1, s, strlen(s)+1);
s[0] = '-';
}
if (precision > 0) {
strcat(s, ".");
itoa(fraction, temp);
for (i = strlen(temp); i < precision; i++) {
strcat(s, "0");
}
strcat(s, temp);
}
}
int main() {
float f = -3.14159;
char s[20];
ftoa(f, 2, s);
printf("%s\n", s);
return 0;
}
```
输出结果为:-3.14
阅读全文