string去除小数点后多余的0
时间: 2023-04-03 17:05:17 浏览: 228
可以使用sprintf函数将浮点数转换为字符串,然后使用正则表达式去除小数点后多余的0。具体代码如下:
```c
#include <stdio.h>
#include <regex.h>
int main() {
double num = 3.140000;
char str[20];
sprintf(str, "%.6f", num); // 将浮点数转换为字符串,保留6位小数
regex_t reg;
regcomp(®, "\\.?0+$", REG_EXTENDED); // 编译正则表达式
regmatch_t pmatch[1];
if (regexec(®, str, 1, pmatch, 0) == 0) { // 匹配成功
str[pmatch[0].rm_so] = '\0'; // 将多余的0去掉
}
regfree(®); // 释放正则表达式
printf("%s\n", str); // 输出结果:3.14
return 0;
}
```
相关问题
java自动去掉小数点后的0 java忽略小数点后多余的0
在Java中,可以使用以下方法来去掉小数点后的0:
1. 使用 DecimalFormat 类:
```java
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
double num = 10.50000;
DecimalFormat df = new DecimalFormat("#.##");
String result = df.format(num);
System.out.println(result);
}
}
```
这将输出:10.5
2. 使用 String 的 replace 方法:
```java
public class Main {
public static void main(String[] args) {
double num = 10.50000;
String result = String.valueOf(num).replaceAll("\\.0*$", "");
System.out.println(result);
}
}
```
这将输出:10.5
这些方法都可以忽略小数点后多余的0,并将结果作为字符串返回。
c语言去除小数点后多余的零
在C语言中,如果你想要去除小数点后多余的零,可以使用`itoa()`函数配合`strtok()`或者手动遍历并替换字符串中的字符。这里是一个简单的例子,假设我们有一个字符串表示的浮点数:
```c
#include <stdio.h>
#include <string.h>
// 这里假设我们有这样一个函数,它会去掉字符串尾部的零和点,除非它是0.0
void remove_trailing_zeros(char* num) {
int i = strlen(num) - 1; //从后往前找
while (i > 0 && (num[i] == '0' || (num[i] == '.' && i == 1))) { //如果末尾是0或只有一个小数点
if (num[i] != '.') {
num[i] = '\0'; //直接截断
} else {
i--; //跳过小数点
}
i--;
}
}
int main() {
char num_str[] = "123.4500";
remove_trailing_zeros(num_str);
printf("Result: %s\n", num_str); // 输出结果将是 "123.45"
return 0;
}
阅读全文