我在窗口中运行该SQL &的Linux版本的MySQL,并得到了不同的结果:MySQL的算术计算结果的Windows和Linux
select (((((237803.3300+1659482.4400)/2.00)/1182208.5700)*30.00*6)+
(0.50*`(((((((1159248.2000+687984.6000)/2.00)/1527268.4000)*30.00*6)+
((((457300.0000+1707654.0300)/2.00)/1182208.5700)*30.00*6))
-(((((360.00*((1527268.4000-1182208.5700)-((2587.0000-((5354427.3100*0.0400*6)/12.00))
+99354.4800+10550.5600)))/((((((1159248.2000+687984.6000)/2.00)/1527268.4000)*30.00*6)+
((((457300.0000+1707654.0300)/2.00)/1182208.5700)*30.00*6))*0.5))-(0.50*((2587.0000-
((5354427.3100*0.0400*6)/12.00))+99354.4800+10550.5600)))*
(((((1159248.2000+687984.6000)/2.00)/1527268.4000)*30.00*6)+
((((457300.0000+1707654.0300)/2.00)/1182208.5700)*30.00*6)))/1182208.5700))-
((((237803.3300+1659482.4400)/2.00)/1182208.5700)*30.00*6)))) AS YF`
的Windows版本的MySQL结果:105.93639914104807268662689486
的Linux版本的mysql结果:144.43789669025999363208811782
而我一直在检查这个表达式在其他一些平台如java,excel中,获得约值:105.93 .....,所以我想到了th在linux上计算mysql是不正确还是一些mysql变量设置不正确?有人可以告诉我为什么吗?
我的MySQL的Linux版本(在云服务器):
mysql>SHOW VARIABLES LIKE "%version%"
+-------------------------+---------------------------------+
| Variable_name | Value |
+-------------------------+---------------------------------+
| innodb_version | 1.1.8-20.1 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.18.1-Alibaba-rds-201406-log |
| version_comment | Source distribution |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+---------------------------------+
舍入错误,也写愚蠢的代码。 – 2014-11-01 08:01:07
如果它是舍入错误,它会变得太过分(144.44 - 105.94 = 38.5)。 – 2014-11-01 10:48:08
这是一个(可笑)长的公式,它们确实建立起来 – 2014-11-01 10:49:01