草庐IT

double-click

全部标签

c# - 为什么 (double)0.6f > (double)(6/10f)?

这是我电脑上发生的事情:(double)(float)0.6=0.60000002384185791(double)0.6f=0.60000002384185791(double)(6/10f)=0.6(double)(float)(6/10f)=0.66/10f也是个float,怎么能精确到0.6呢?在我看来(double)(6/10f)也应该是0.60000002384185791。有人可以帮忙解释一下吗?谢谢! 最佳答案 首先,重要的是要记住0.6不能准确地表示为float但它可以准确地表示为double(浮点运算的不准确性已

c# - 将 long 转换为 double 的精度损失有多大?

我在stackoverflow上的不同帖子和C#文档中读到,将long(或任何其他表示数字的数据类型)转换为double会失去精度。由于float的表示,这一点非常明显。我的问题是,如果将较大的数字转换为double,精度损失有多大?我是否必须期望差异大于+/-X?我想知道这一点的原因是我必须处理一个long的连续计数器。这个值被我的应用程序读取为string,需要转换并且必须除以例如10或其他一些小数字,然后进一步处理。decimal是否更适合这项任务? 最佳答案 convertinglong(oranyotherdatatype

c# - 在运行内部代码之前,在锁之前和锁内设置 "double check"是否可以?

在处理线程安全时,我发现自己总是在执行锁block中的代码之前“仔细检查”,我想知道自己是否做对了。考虑以下三种做同样事情的方法:示例1:privatestaticSomeCollectionMyCollection;privatestaticObjectlocker;privatevoidDoSomething(stringkey){if(MyCollection[key]==null){lock(locker){MyCollection[key]=DoSomethingExpensive();}}DoSomethingWithResult(MyCollection[key]);}示

C# doubles 显示逗号​​而不是句点

我和这个帖子里的人几乎有同样的问题:ConvertFloatthathasperiodinsteadofcomma?所以我的doublex=234.4;stringy=x.ToString();我得到y=="234,4";更糟糕的是......Double.Parse("234.4")抛出异常。在我被要求使用句点而不是逗号之前,我已经写了很多代码,所以我更愿意有一些方法可以在全局级别更改我的CultureInfo。项目中是否有一些我可以做的设置?我试过:Application.CurrentCulture=CultureInfo.CreateSpecificCulture("en-US

c# - Windows 窗体 : Pass clicks through a partially transparent always-on-top window

我正在设计一个始终显示在屏幕上且不透明度约为20%的窗口。它被设计成一种状态窗口,所以它总是在顶部,但我希望人们能够通过该窗口单击到下面的任何其他应用程序。这是我现在键入时位于此SO帖子顶部的不透明窗口:看到那个灰色条了吗?它会阻止我此刻在标签框中输入。 最佳答案 可以制作一个窗口,点击通过添加WS_EX_LAYERED和WS_EX_TRANSPARENT样式到它的扩展样式。还要让它始终位于顶部设置其TopMost为true并使其半透明使用合适的Opacity值:usingSystem;usingSystem.Windows.For

c# - 为什么此方法返回 double.PositiveInfinity 而不是 DivideByZeroException?

我在VS2015C#交互中运行了以下代码片段,得到了一些非常奇怪的行为。>doubledivide(doublea,doubleb).{.try.{.returna/b;.}.catch(DivideByZeroExceptionexception).{.thrownewArgumentException("Argumentbmustbenonzero.",exception);.}.}>divide(3,0)Infinity>3/0(1,1):errorCS0020:Divisionbyconstantzero>varb=0;>3/bAttemptedtodividebyzero.>

c# - 在 asp :repeater on button click event 中找到控件

我在asp:repeater项目模板中有一个下拉列表。我怎样才能在按钮点击事件中获得它的值(value)。protectedDropDownListddlWorkflowMembers=newDropDownList();protectedvoidWorkflowListAfterItemCreated(objectsender,RepeaterItemEventArgse){ddlWorkflowMembers=(DropDownList)e.Item.FindControl("ddlWorkflowMembers");}protectedvoidBtnSaveClick(objec

c# - 如何将 double 格式化为字符串并仅在必要时显示小数位?

我有这样的代码:lblFranshizShowInvwNoskhehEdit.Text=string.Format("{0:n}",(double)(int.Parse(drDarman["FranshizDarsad"].ToString())*Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text))/100);但是{0:n0}字符串格式强制标签的文本没有小数位,而{0:n}字符串格式强制标签的文本有2个小数位数字(默认)。在我的场景中,我只需要必要时的小数位/不四舍五入/我该怎么做? 最佳答案

C# volatile double

因为只有引用类型和一些基元(包括float,但不包括double,我不确定原因,我很高兴听到原因)可以声明为volatile,如果我在类中包装double然后将其声明为volatile(如下所示),double属性是否会像任何其他volatile一样是“读写”线程安全的,还是我仍然应该考虑锁定?publicclassMyThreadedClass{volatileVolatileDoublevoldub;}publicclassVolatileDouble{publicdoubleDouble{get;set;}} 最佳答案 dou

C#, DETERMINE *if* a double 可以毫无损失地变成 int

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Howtodetermineifadecimal/doubleisaninteger?我有一个独特的情况,所有数字都必须在我的数据库中保存为double数据类型,但只有在某些情况下,超出整数级别的精度才有值(value)。起初,我尝试只使用int,然后在这些独特的分数出现时抽象到一个新表,但在这样做了几周之后,我现在可以看到它过于愚蠢并且浪费我的时间。我知道我可以将double转换为int。那很容易。我知道怎么翻译过来。我不知道如何测试以将其翻译过来。我基本上希望想出一个简短、简单的方式来表达Isthisnum