问题标签 [boost-lexicalcast]
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.
c++ - Boost 的 lexical_cast 从 double 到 string Precision
我正在使用一个库,不幸的是它boost::lexical_cast
用于从 a 转换double
为string
.
我需要能够明确地反映我身边的这种行为,但我希望在不传播boost
.
to_string
使用,sprintf
或标准中包含的某些其他功能可以保证我的行为相同吗?
c++ - 将词法转换双精度提升到字符串,给出无效结果
我正在尝试这个:
并期望输出为:
但输出是:
g++ 版本:5.4.0,升压版本:1.66
我能做些什么来让它打印出它得到的东西。
c++ - 使用词法转换设置'string to double'中双精度变量的精度
我有一个值为"496934.079"的字符串。我使用boost::lexical_cast ()将其转换为双变量(名为pVar)。
但是转换后存储在 pVar 中的值是"496934"而不是"496934.079"。小数点后的数字缺失。我已经阅读了有关std::setprecision()在此处的输出窗口中以所需精度写入双精度值的信息。但它只显示具有给定精度的值,并且不会将其保存在具有给定精度的变量中。
但我想将双精度值完全存储在字符串变量str中,以便 pVar 中的值为"496934.079"。如何以与输入字符串相同的精度将值存储在变量中,以便可以使用该变量进行进一步处理?
我的代码片段是:
编辑:从字符串到浮点的这种转换是我正在开发的代码的一部分,它逐行解析文本文件中的值并将它们写入另一个文件(.pcd 格式)。我正在添加用于此转换的整个代码以供参考。
下面是文本文件中的几行示例以及转换后的“.pcd”文件中的相应行。
在文本文件中:
496934.999 5419547.239 265.179
496933.981 5419542.579 263.819
496934.891 5419545.399 264.849
496934.939 5419546.329 265.111
496934.829 5419544.489 264.781
在“.pcd”文件中(对应的值来自boost::lexical_cast ())
496935 5419547 265.17899
496933.97 5419542.5 263.819
496934.91 5419545.5 264.849
496934.94 5419546.5 265.11099
496934.84 5419544.5 264.78101
请注意,这些值要么四舍五入,要么在输出“.pcd”文件中更改小数点后的数字。这可能是什么原因?
c++ - 提升坏词法转换:将字符串转换为无符号长长时,源类型值无法解释为目标
我在wandbox.org上编译的以下代码导致以下错误。我不明白为什么我会收到错误。
启动 prog.cc:在函数“int main()”中:prog.cc:11:15:警告:未使用的变量“结果”[-Wunused-variable] 11 | Ulonglong 结果 = boost::lexical_cast("862.00"); | ^~~~~~ 在抛出'boost::wrapexcept'的实例后调用终止what():错误的词法转换:源类型值无法解释为目标中止完成