首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计数浮点数(hw) C

计数浮点数(hw) C
EN

Stack Overflow用户
提问于 2010-01-01 16:06:07
回答 2查看 2K关注 0票数 0

我需要计算float数字中的位数,并保留该数字。我可以将scanf()%f%c一起使用,但不能与%s一起使用,并且我可以使用getchar()

我可以使用getchar,但我会丢失数字。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-01 16:13:46

为什么你会用getchar丢失号码

  1. 使用getchar读取字符,直到您点击空格/enter/end of input
  2. 将它们全部收集到单个字符串中
  3. 使用strtod确保它是字符串中有效的浮点值
  4. 计数数字-无论是在点之前还是之后。<代码>H210<代码>G211

如果您仅限于getchar

  1. 使用getchar
  2. Keep逐个读取字符,了解您在数字中所处的位置:小数点之前、小数点处或小数点之后
  3. 只要是有效的浮点数(即1位或更多位,然后是后面有1位或更多位的小数点可选)
  4. 通过移位10的幂(即小数点之前乘以10.0并添加新数,小数点后除以10的递增幂并相加)来收集数字。
票数 2
EN

Stack Overflow用户

发布于 2010-01-01 17:08:12

正如我所见,你已经得到了答案,但这对你也适用吗?

代码语言:javascript
运行
复制
#include <stdio.h>


int main()
{
    char *str = new char[30];
    float flt;
    int count = 0;

    scanf( "%f", &flt);
    printf( "number you entered is: %f\n", flt);
    sprintf(str, "%f", flt );

    for( ;str[count] != '\0'; count++ );

    printf( "%f have %d digits", flt, count-1);
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1988160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档