Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python C代码的同步生成&Wierd浮点转换_Python_Python 3.x_Sympy - Fatal编程技术网

Python C代码的同步生成&Wierd浮点转换

Python C代码的同步生成&Wierd浮点转换,python,python-3.x,sympy,Python,Python 3.x,Sympy,我正在使用SympyV1.8生成一些C代码 我要转换的表达式之一是: exp1 = 0.8*sin(sym.pi*x**2) 我正在使用: import sympy as sym x = sym.Symbol('x') exp1 = 0.8*sym.sin(sym.pi*x**2) sym.ccode(exp1) 输出为: '0.80000000000000004*sin(M_PI*pow(x, 2))' 我的问题是:为什么将0.8转换为0.800000000000004?我能纠正这种行为

我正在使用SympyV1.8生成一些C代码

我要转换的表达式之一是:

exp1 = 0.8*sin(sym.pi*x**2)
我正在使用:

import sympy as sym
x = sym.Symbol('x')
exp1 = 0.8*sym.sin(sym.pi*x**2)
sym.ccode(exp1)
输出为:

'0.80000000000000004*sin(M_PI*pow(x, 2))'
我的问题是:为什么将0.8转换为0.800000000000004?我能纠正这种行为吗


致以最诚挚的问候

没有什么需要“更正”的,
0.8==0.800000000000004
请看,之所以会出现这种情况,是因为计算机是如何存储十进制值的?