我正在 c++ 和 python 程序之间进行一些输入/输出(仅浮点值) python 有一个很好的功能,可以将浮点值转换为十六进制数字并返回,如您在此链接中看到的:
http://docs.python.org/library/stdtypes.html#additional-methods-on-float http://docs.python.org/library/stdtypes.html#additional-methods-on-float
C++ 中有没有一种简单的方法可以实现类似的功能?并将 python 输出转换回 C++ double/float?这样我在两个进程之间交换数据时就不会出现舍入错误的问题......
谢谢你的答案!
从您在问题中提供的链接(浮动的附加方法 http://docs.python.org/library/stdtypes.html#additional-methods-on-float):
该语法类似于
第 6.4.4.2 条规定
C99标准,也符合语法
从Java 1.5开始使用。在
特别是 float.hex() 的输出
可用作十六进制
C 或 Java 中的浮点文字
代码和生成的十六进制字符串
通过 C 的 %a 格式字符或 Java 的
Double.toHexString 被接受
float.fromhex()。
Example:
#include <cstdio>
int main() {
float f = 42.79;
printf("%.2f == %a\n", f, f);
fscanf(stdin, "%a", &f);
printf("%.2f == %a\n", f, f);
}
Run it:
$ g++ *.cpp && (python -c'print 12.34.hex()' | ./a.out )
Output:
42.79 == 0x1.5651ecp+5
12.34 == 0x1.8ae148p+3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)