在Ruby中,
Math.acos(10/70) * 57.2958
应该返回大约80度(根据我的计算器)。 然而它返回大约90度。这是为什么?
答案 0 :(得分:2)
您需要添加小数点,否则Ruby将采用整数除法:
<cxf:proxy-client payload="envelope" enableMuleSoapHeaders="false" soapVersion="1.2" doc:name="CXF Proxy Client">
<cxf:ws-security>
<cxf:ws-config>
<cxf:property key="action" value="UsernameToken"/>
<cxf:property key="passwordType" value="PasswordText"/>
<cxf:property key="passwordCallbackClass" value="com.smarthomes.soap.ClientPasswordCallback"/>
<cxf:property key="user" value="${fp.username}"/>
</cxf:ws-config>
</cxf:ws-security>
</cxf:proxy-client>
如果你只是使用irb(main):006:0> Math.acos(10/70) / Math::PI * 180
=> 90.0
irb(main):007:0> Math.acos(10.0/70) / Math::PI * 180
=> 81.78678929826181
,这将会转到0,然后你会得到10/70
而不是Math.acos(0)
这就是你想要的。