gpt4 book ai didi

c - 删除千位分隔符 C 编程

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:47 26 4
gpt4 key购买 nike

我正在尝试制作一个简单的函数,该函数可以将带有千位分隔符的数字转换为没有分隔符的整数。我所有的数字都在 0 到 999.999 的范围内,所以我最初的想法是像处理 double 一样处理它,然后乘以 1000 并收工,但是有更通用的方法吗?:

#include <stdio.h>
main() {
double a;
a=369.122;
int b;
b = a * 1000;
printf("b is %d", b);
}

我当前的解决方案在哪里:

#include <stdio.h>
main() {

char *XD = "113.321";

int s1, s2;

sscanf(XD, "%i.%i", &s1, &s2);
printf("%i", s1 * 1000 + s2);
}

最佳答案

由于浮点不精确,为此使用 double 是不合适的:您可能会发现当乘以 1000 并截断为 int 时,您最终得到比你真正想要的少 1 的数字。

另请注意,int 的最大值可以小至 32767。在这样的平台上,b 会溢出。

如果我是你,我会在整个过程中使用 long 并在你想要显示值时引入 1000s 分隔符。对于正数 x,前 1000 使用 x/1000 获得,最后 1000 使用 x % 1000

关于c - 删除千位分隔符 C 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40806942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com