问题标签 [atof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
16380 浏览

c++ - 与语言环境无关的“atof”?

我正在解析固定 NMEA 句子中的 GPS 状态条目,其中地理分钟的一小部分总是在句点之后出现。但是,在语言环境将逗号定义为小数分隔符的系统上,atof函数会忽略句点和整数部分。

处理这个问题的最佳方法是什么?存储在字符数组中的长/纬度字符串,如果重要的话。

示例代码:

在哪里

跨平台项目,针对 Windows XP 和 CE 编译。

对解决方案的评论:

接受的答案更优雅,但这个答案(和评论)也值得作为快速修复来了解

0 投票
4 回答
6769 浏览

c++ - 将字符串转换为双精度的 C++ 错误

我正在尝试将字符串转换为双精度。代码非常简单。

当尝试进行额外转换时,编译器向我抛出了这个智慧宝石:

错误:在 extra.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator](((unsigned int) 中请求成员 c_str )(i + 1))),它是非类类型 char

我不知道那是什么意思。如果我 cout extra[i+1],我会得到 3。如果我将 extra 作为字符串保留,程序会尝试首先将 (2) div 除以 51(ascii 表示 3)。到底他妈发生了什么?

0 投票
10 回答
1349 浏览

c - 任何人都知道如何将一个巨大的字符数组转换为浮点数,非常大的数组,性能比 atof/strtod/sscanf 好

我有一个 char 数组,一个巨大的数组 char p[n] 从 txt 中读取。

foo(char *p, 浮动 x, 浮动 y, 浮动 z) {

}

我尝试使用 atof、strtod,但是当数组太大时它们会非常耗时,因为它们会调用 strlen()。而且 sscanf 也很慢....

调试了代码,发现 atof() 和 strtod 都调用了Visual Studio中的 strlen() ,我们可以查看 crt 代码。

我也尝试使用strtok,但我们不应该更改1.txt中的任何数据。

所以任何人都有将所有这些转换为浮点 x、y、z 的最佳方法。

视觉工作室 2008 + WIN7

0 投票
3 回答
2072 浏览

c - 使用“D”而不是“E”读取 ASCII 数字以使用 C 进行科学记数法

我有一个看起来像这样的数字列表:1.234D+11.234D-02。我想使用 C 读取文件。该函数atof将仅忽略D并仅翻译尾数。

该函数fscanf将不接受该格式'%10.6e',因为它期望指数E中的 a 而不是 a D

当我在 Python 中遇到这个问题时,我放弃了,只是在从字符串转换为浮点数之前使用了字符串替换。但是在 C 中,我相信一定有另一种方式

那么,您将如何读取带有数字的文件D而不是E科学记数法呢?请注意,我不是指如何读取字符串本身,而是如何将它们转换为浮点数。

谢谢。

0 投票
2 回答
518 浏览

c - 扫描、检查、转换、复制值...如何? - C -

现在已经有一段时间了,我仍在尝试让某个代码正常工作。我之前问过一些关于不同命令等的问题,但现在我希望这是最后一个(将所有问题组合在一个代码中)。

我基本上想:

*扫描输入(应该是字符?)

*检查它是否是一个数字

*如果不是,返回错误

*将该字符转换为浮点数

*将值复制到另一个变量(我在这里称之为imp)

这是我想出的:

编辑代码*

问题是这段代码根本不起作用......它让我知道 atof 必须是一个 const char 并且每当我尝试改变它时,它总是会失败。我很沮丧,被迫在这里问,因为我相信我已经尝试了很多并且我一直失败,但是在我让它工作之前我不会松一口气xD所以我真的需要你们的帮助。

请告诉我为什么这段代码不起作用,我做错了什么?我仍在学习 C,非常感谢您的帮助 :)

给定 atm 的编辑错误是:

Argument no 1 of 'isdigit' must be of type 'const int', not '<ptr>char'

编辑 此代码编译得很好,但是在输入输入时会崩溃。

0 投票
3 回答
1008 浏览

c - 如何读取文件、获取数据和计算

我正在读一本书,但我想不通,试试看:(它是非英语的,所以我翻译了它)

编写一个程序,要求有 n 个学生,选择 n 个学生(以动态方式),名字是 10 个字符,并记下 5 个字符

从上面的选择中创建一个文本文件 note.txt 并附加连字符以达到 10 个字符(对于名称)。

然后读取文件并从中(仅)计算总数。然后显示注释不大于 10 的人的姓名和注释。

您必须实现 3 个函数:createStudent、createFile 和 readFile,并且不能使用全局变量。

语法:名称必须声明为 char nom[10+1](即 James,然后将添加 5 个连字符以获得 10 个字符)=> james----- 并注意:char[5+1](即15.00 或 07.50)

Tips : 要将note从文本格式转换为float格式,可以使用atof函数

我创建了 createStudent 和 createFile 函数。它们运行良好,但我无法弄清楚最后一部分(readFile 函数)。

我的文本文件有这个形状:Bart------ 04.50 Lisa------ 18.00 Homer----- 03.00

它可以编译但不起作用,我不知道为什么:(我觉得 C 语言与 java 或 c# 相比实在是太让人头疼了

你能给我一些灯吗?

0 投票
3 回答
3029 浏览

c++ - 将像“2.12e-6”这样的字符串转换为双精度

c++ 中是否有一个内置函数可以处理将“2.12e-6”之类的字符串转换为双精度字符串?

0 投票
5 回答
6120 浏览

c - 不包括 stdlib.h 不会产生任何编译器错误!

希望这是一个非常简单的问题。以下是我拥有的 C pgm (test.c)。

请注意,我使用的是 stdlib.h 中的 atoi() 和 atof(),但我不包含该头文件。我编译了 pgm (gcc test.c) 并且没有编译器错误!

我运行 pgm (./a.out),这是错误的输出。

现在我包含stdlib.h(通过删除#include 之前的注释)并重新编译并再次运行它。这次我得到了正确的输出:

为什么编译器没有抱怨不包括 stdlib.h 并且仍然让我使用 atoi()、atof() 函数?

我的 gcc 信息:

任何想法表示赞赏!

0 投票
4 回答
12937 浏览

c - 无法将 argv[] 中的内容转换为 C 中的 float[][]

我正在做一个程序,我正在将矩阵相乘,但我的大问题是将输入转换为我最终将相乘的两个数组。以下是我的转换代码,包括数组的声明。(我删除了输入是 8 个有效浮点数的验证,因为我一直在调试它)。

在编译时使用 atof 时出现错误:“下标值既不是数组也不是指针”我一直在查找错误,但还没有弄清楚在我的情况下它意味着什么。

0 投票
3 回答
345 浏览

c - ansi c中的转换问题

可能的重复:
浮点不准确示例
JavaScript 的数学是否损坏?

我需要将 txt 文件中的一些数据转换为双精度值,我为此使用了这个函数: atof 。问题是必须转换的值是 5.550000,而 atof 函数返回 5.5499999999999998,这是一个问题,因为我必须用这个数字计算 GPA,而结果并不精确。这是从 txt 文件中读取数据的函数: