我有一些简单的代码比较两个浮点值,以说明我在GCC优化中看到的问题,并希望有人可以帮我弄清楚为什么它产生的输出在某些可重复的情况下是不同的.
首先,我知道将浮点值与==进行比较是不好的,因为你可以在尾数中关闭一些非常小的数量,但在我的例子中并非如此.我遇到的问题是基于2个因素的输出变化.1)我传入的优化标志,以及2)如果我取消注释std :: cout线.
为什么代码GCC在-O2下产生不同的运行?如果取消注释打印,为什么在-O2下编译的代码有效?
这是我正在测试的代码:
#include <iostream>
const float ft_to_m = (float)0.3048;
const float m_to_ft = (float)3.28083989501;
float FeetToKilometers( float & Feet ) {
float Kilometers;
Kilometers = (ft_to_m * Feet) / 1000.;
return Kilometers;
}
int main(void)
{
float feet = 20000.;
float old_val = 0;
float new_val = FeetToKilometers(feet );
float diff_val = 0;
int *old_int = reinterpret_cast<int*>(&old_val);
int *new_int = reinterpret_cast<int*>(&new_val);
for (int i=0; i<2; i++)
{
new_val = FeetToKilometers(feet );
diff_val = old_val-new_val;
//std::cout << …Run Code Online (Sandbox Code Playgroud) 我做了一个很大的哎呀,可以使用一些帮助撤消它.
我们有两个存储库 - 一个相当稳定的存储库,以及我们正在进行更改的存储库.我只是在我们的稳定存储库中进行了一个缺陷修复,并将其移动到工作存储库.我从稳定的存储库中取出,合并,然后意外地推送到稳定的存储库.
稳定的存储库现在看起来像这样:
*merge
| \
| \
| *b
*a |
| /
*c
Run Code Online (Sandbox Code Playgroud)
a应该是稳定存储库的提示的提交在哪里,b是我们在开发存储库中完成的所有工作,并且c我们分支开发存储库.
我该如何回归:
*a
|
*c
Run Code Online (Sandbox Code Playgroud)
(我知道我无法真正做出改变,我只是在寻找功能结构......)
我读过一些让我觉得这hg backout是我需要的命令的东西,但我不确定它是做什么的.
当我尝试调用WCF服务时,我收到以下消息"验证邮件的安全性时出错".
当我删除自定义验证时,服务没有问题.虽然我在web.config中配置错误,但我无法弄清楚.任何见解将不胜感激.
<system.serviceModel>
<services>
<service behaviorConfiguration="NAThriveExtensions.nableAPIBehavior"
name="NAThriveExtensions.nableAPI">
<endpoint
address=""
binding="basicHttpBinding"
bindingConfiguration="basicHttpBinding_Secure"
contract="NAThriveExtensions.InableAPI">
</endpoint>
<endpoint
address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="NAThriveExtensions.nableAPIBehavior">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceCredentials>
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType= "NAThriveExtensions.Authentication, NAThriveExtensions" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="basicHttpBinding_Secure">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud) 我有一个班级,位于一个单独的模块中,我无法改变.
from module import MyClass
class ReplaceClass(object)
...
MyClass = ReplaceClass
Run Code Online (Sandbox Code Playgroud)
除了这个文件之外,这不会改变MyClass.但是,如果我要添加这样的方法
def bar():
print 123
MyClass.foo = bar
Run Code Online (Sandbox Code Playgroud)
这将工作,foo方法将在其他地方可用.
如何完全替换课程?
我目前正在为福特公司开发一个移动应用程序项目,我是Java Android的新手.
我只是想知道,有没有办法减少Android 2.1中评级栏的大小?
我想为其他按钮和edittexts保留更多空间.
提前感谢您的帮助
我有一个Git存储库,其中有很多提交,没有特定的分支,我可以git show,但是当我尝试列出包含它们的分支时,它没有报告任何内容.
我认为这是悬挂的提交/树问题(由于-D分支),所以我修剪了回购,但之后我仍然看到相同的行为:
$ git fetch origin
$ git fsck --unreachable
$ git fsck
Run Code Online (Sandbox Code Playgroud)
没有输出,没有悬空(对吧?).但提交存在
$ git show 793db7f272ba4bbdd1e32f14410a52a412667042
commit 793db7f272ba4bbdd1e32f14410a52a412667042
Author: ...
Run Code Online (Sandbox Code Playgroud)
它不能通过任何分支到达
$ git branch --contains 793db7f272ba4bbdd1e32f14410a52a412667042
Run Code Online (Sandbox Code Playgroud)
没有输出.
这个提交的状态究竟是什么?如何列出处于类似状态的所有提交?如何删除那些提交?
我想要一个列表,然后我想测试列表以查看项目是否存在:
这是我的示例代码段:
String[] handToolArray = {"pliers", "screwdriver", "tape measure"};
List<String> handToolList = new ArrayList<String>( Arrays.asList(handToolArray));
if (handToolList.contains("pliers")){
System.out.println("I have pliers");
} else {
System.out.println("I don't have pliers");
}
Run Code Online (Sandbox Code Playgroud)
在第二行中,Arrays.asList(handToolArray)生成:
"Type safety: The expression of type List needs unchecked conversion to conform to Collection<? extends String>"
Run Code Online (Sandbox Code Playgroud)
问题:有没有更好的方法来创建然后查询列表,这是简洁的,不需要抑制未经检查的警告?
给出以下代码:
var EmployeeXPosition = from emp in context.WTDEmployee
from ep in emp.WTDEmployeeXOXPosition
select new {
EmployeeId = emp.id,
FullNameAndPosition = string.Format("{0} {1} : {2}", emp.FirstName, emp.LastName, ep.WTDPosition.Position)
};
Run Code Online (Sandbox Code Playgroud)
它给出了错误:
LINQ to Entities无法识别方法'System.String Format(System.String,System.Object,System.Object,System.Object)'方法,并且此方法无法转换为商店表达式.
果然我能做到:
emp.FirstName+" "+ emp.LastName +" : " + ep.WTDPosition.Position
Run Code Online (Sandbox Code Playgroud)
但它看起来很难看,有关如何使用的任何建议string.Format吗?
我有一个快速的CSS问题,这些问题让我烦恼,我现在似乎无法弄明白.
我已经设置了我的页面上的链接在悬停时有一个底部边框,但它的底部边框出现在有链接的图像上,我无法弄清楚如何防止边框出现在图像上.
这是我现在拥有的.
#main a:hover {
border-bottom:solid 1px #7b9a04;
color:#333;
}
img, img a:hover {
border-bottom:none;
}
Run Code Online (Sandbox Code Playgroud)
然而,这似乎不起作用.我认为它没有任何其他样式覆盖它,因为如果我删除#main a:hover样式,图像不再具有底部边框,但网站上的其他任何链接都不会.
好吧,所以warsow有一些非常优秀的hud代码,除了数学逻辑有点棘手.
输入:
a*b + c*d
Run Code Online (Sandbox Code Playgroud)
解释为:
((d*c) + b) * a
Run Code Online (Sandbox Code Playgroud)
如您所见,游戏以相反的顺序执行一系列操作,而不考虑操作顺序.括号不适用于hud代码.它必须是一系列线性操作才能得出最终结果.这可能吗?我知道在hud代码中实现正确的数学会更好,但这样会更有趣.