草庐IT

double-double-arithmetic

全部标签

c# - WPF ListView : Attaching a double-click (on an item) event

我有以下ListView:我如何将事件附加到每个绑定(bind)的项目,双击该项目时将触发该事件? 最佳答案 从这里找到解决方案:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/3d0eaa54-09a9-4c51-8677-8e90577e7bac/XAML:C#:protectedvoidHandleDoubleClick(objectsender,MouseButtonEventArgse){vartrack=((ListViewItem)sender).Con

c# - 为什么 double.NaN 不等于它自己?

有人能给我解释一下吗?在C#中,double.NaN不等于double.NaNboolhuh=double.NaN==double.NaN;//huh=falseboolhuh2=double.NaN>=0;//huh2=falseboolhuh3=double.NaN我可以将什么常量与double.NaN进行比较并得到true? 最佳答案 如果你很好奇,这就是Double.IsNaN的样子:publicstaticboolIsNaN(doubled){return(d!=d);}时髦吧?

c# - 在 C# 中将 double 转换为 int

在我们的代码中,我们有一个需要转换为int的double。doublescore=8.6;inti1=Convert.ToInt32(score);inti2=(int)score;谁能解释一下为什么i1!=i2?我得到的结果是:i1=9和i2=8。 最佳答案 因为Convert.ToInt32回合:ReturnValue:roundedtothenearest32-bitsignedinteger.Ifvalueishalfwaybetweentwowholenumbers,theevennumberisreturned;that

c# - Double 的 "=="运算符的定义

出于某种原因,我潜入了Double类的.NETFramework源代码中并发现==的声明是:publicstaticbooloperator==(Doubleleft,Doubleright){returnleft==right;}相同的逻辑适用于每个运算符。这样的定义有什么意义?它是如何运作的?为什么它不创建无限递归? 最佳答案 实际上,编译器会将==运算符变成ceqIL代码,而不会调用您提到的运算符。源代码中运算符的原因可能是可以从C#以外的语言调用它,这些语言不会直接(或通过反射)将其转换为CEQ调用。运算符内的代码将编译为C

c# - 将 double 转换为整数

将double转换为int的最佳方法是什么?是否应该使用强制转换? 最佳答案 如果你想要默认的截断到零行为,你可以使用强制转换。或者,您可能想使用Math.Ceiling、Math.Round、Math.Floor等-虽然之后您仍然需要进行转换.不要忘记int的范围比double的范围小得多。如果值在未检查的上下文中超出int的范围,则从double到int的转换不会抛出异常,而调用Convert.ToInt32(double)将。如果值超出范围,则强制转换的结果(在未经检查的上下文中)显式未定义。

c# - 为什么通过字符串进行的往返转换对于 double 不安全?

最近我不得不将一个double序列化为文本,然后再将其取回。该值似乎不相等:doubled1=0.84551240822557006;strings=d1.ToString("R");doubled2=double.Parse(s);bools1=d1==d2;//->s1isFalse但根据MSDN:StandardNumericFormatStrings,“R”选项应该保证往返安全。Theround-trip("R")formatspecifierisusedtoensurethatanumericvaluethatisconvertedtoastringwillbeparsedb

c# - 如何确定小数/ double 是否为整数?

如何判断小数或double值是整数?例如:decimald=5.0;//Wouldbetruedecimalf=5.5;//Wouldbefalse或doubled=5.0;//Wouldbetruedoublef=5.5;//Wouldbefalse我想知道这一点的原因是,我可以通过编程方式确定是否要使用.ToString("N0")或.ToString("N2")。如果没有小数点值,那么我不想显示它。 最佳答案 对于float,n%1==0通常是检查小数点后是否有任何内容的方法。publicstaticvoidMain(stri

c# - 如何将带小数点的字符串解析为 double ?

我想将像"3.5"这样的字符串解析为double值。然而,double.Parse("3.5")产量35和double.Parse("3.5",System.Globalization.NumberStyles.AllowDecimalPoint)抛出一个FormatException。现在我的计算机的区域设置为德语,其中使用逗号作为小数点分隔符。它可能必须对此做一些事情并且double.Parse()期望"3,5"作为输入,但我不确定。我如何解析包含十进制数字的字符串,该字符串可能会或可能不会按照我当前语言环境中指定的格式进行格式化? 最佳答案

c# - 我什么时候应该使用 double 而不是十进制?

我可以说出使用double(或float)代替decimal的三个优点:使用更少的内存。速度更快,因为处理器本身就支持float学运算。可以表示更大范围的数字。但这些优势似乎只适用于计算密集型操作,例如建模软件中的操作。当然,在需要精度的情况下,例如财务计算,不应该使用double。那么,在“正常”应用程序中选择double(或float)而不是decimal有什么实际原因吗?编辑添加:感谢大家的精彩回复,我从他们那里学到了东西。还有一个问题:一些人指出double可以更准确地表示实数。当宣布时,我认为他们通常也更准确地代表他们。但是,当执行浮点运算时,精度可能会降低(有时会显着降低)

c# - 什么代表sql server中的double?

我在C#中有几个属性是double我想将它们存储在SQLServer的表中,但注意到没有double类型,那么最好使用什么,decimal还是float?这将存储纬度和经度值,因此我需要最准确的精度。感谢到目前为止的回复。 最佳答案 float或者如果你想走老路:real你也可以使用float(53),但它与float的含义相同。(“real”等同于float(24),而不是float/float(53)。)decimal(x,y)SQLServer类型适用于需要精确十进制数而不是float(可以是近似值)的情况。这与C#的“十进制