我在Java和C/C++中编写了几个参考算法.其中一些算法使用π.我希望每个算法的两个实现产生相同的结果,而不会有不同的舍入.迄今为止一直工作的一种方法是使用自定义pi常量,这在两种语言中都是完全相同的,例如3.14159.但是,当Java和GCC库中已经定义了高精度常量时,定义pi是很愚蠢的.
我花了一些时间编写快速测试程序,查看每个库的文档,并阅读浮点类型.但是我无法说服自己java.lang.Math.PI(或java.lang.StrictMath.PI)在math.h中是否等于M_PI.
GCC 3.4.4(cygwin)math.h包含:
#define M_PI 3.14159265358979323846
^^^^^
Run Code Online (Sandbox Code Playgroud)
但是这个
printf("%.20f", M_PI);
Run Code Online (Sandbox Code Playgroud)
产生
3.14159265358979311600
^^^^^
Run Code Online (Sandbox Code Playgroud)
这表明最后5位数不能被信任.
同时,Javadocs说java.lang.Math.PI是:
的
double是比任何其他更接近值PI,圆其直径的圆周的比率.
和
public static final double PI 3.141592653589793d
Run Code Online (Sandbox Code Playgroud)
从常量中省略了可疑的最后五位数.
System.out.printf("%.20f\n", Math.PI);
Run Code Online (Sandbox Code Playgroud)
产生
3.14159265358979300000
^^^^^
Run Code Online (Sandbox Code Playgroud)
如果您对浮点数据类型有一些专业知识,您能说服我这些库常量完全相等吗?或者他们肯定不平等?
我想在我的页面中调用一个名为enableTinyMCE()的函数调用; 在该函数中,我想看看我的页面中是否有任何textarea,如果是,还是tinyMCE.init()函数.如何检测页面中是否有任何textarea元素?
使用任意Windows机器(2000/XP或更高版本),我可以
将Eclipse CDT安装到USB驱动器
将USB驱动器移动到另一台Windows机器上 - 没有安装任何形式的Eclipse软件,可能是不同版本的Windows(但2000/XP或更高版本)
使用Eclipse在第二台机器上开发应用程序级C/C++程序(包括使用调试器),直接从USB驱动器运行而不将任何内容复制到C:.
我可以在没有任何一台机器的管理员权限的情
我可以对NetBeans以及其他几个支持C/C++开发的IDE做同样的事情.
是否可以使用任何版本的Visual Studio Express执行此操作?
如果没有,你能解释一下这不起作用的技术原因吗?
我正在开发一个基于Web的应用程序,它使用基于HTTP的JSON API在服务器和客户端之间进行通信.目标是使用相同的在线数据通过此Web服务共享,可以使用不同的目标(在线Web客户端,脱机桌面客户端或第三方创建)开发多个客户端.
现在,客户端和服务器之间的通信仅通过一个运行良好的系统通过POST发送.我阅读了很多关于REST的信息,并使用PUT,GET,POST和DELETE对HTTP进行RESTful.我可以将我的API分成这些不同的类别,但这意味着更多的代码和API的一些更改.
我的问题是:基于HTTP的API对RESTful有多重要?这是推荐,选择还是近乎必要的?
提前致谢.