草庐IT

im2double

全部标签

c# - 为什么 IsNan 是 Double 类的静态方法而不是实例属性?

问题在标题里,为什么:returndouble.IsNaN(0.6d)&&double.IsNaN(x);代替return(0.6d).IsNaN&&x.IsNaN;我问是因为在实现具有与NaN相同含义的特殊值的自定义结构时,我倾向于选择第二种。此外,属性的性能通常更好,因为它避免了复制堆栈上的结构来调用IsNaN静态方法(而且由于我的属性不是虚拟的,所以没有自动装箱的风险)。诚然,这对于内置类型来说并不是真正的问题,因为JIT可以轻松地对其进行优化。我现在最好的猜测是,由于您不能在double类中同时拥有同名的属性和静态方法,因此他们更喜欢受java启发的语法。(事实上​​,您可以同

c# - 如何找到列表 <double> 的模式?

我有一个列表:Listfinal=newList();final.Add(1);final.Add(2);final.Add(3);我可以使用什么样的方法来找到这个列表的模式?此外,如果有两种模式,该函数将返回两者中较小的一个。 最佳答案 int?modeValue=final.GroupBy(x=>x).OrderByDescending(x=>x.Count()).ThenBy(x=>x.Key).Select(x=>(int?)x.Key).FirstOrDefault();它所需要的只是一些组合的LINQ操作。您也可以用查询

c# - 调试/ Release模式下的浮点/ double

C#/.NET浮点运算在Debug模式和Release模式之间的精度是否不同? 最佳答案 它们确实可以不同。根据CLRECMA规范:Storagelocationsforfloating-pointnumbers(statics,arrayelements,andfieldsofclasses)areoffixedsize.Thesupportedstoragesizesarefloat32andfloat64.Everywhereelse(ontheevaluationstack,asarguments,asreturntypes

c# - .NET “double” 算法是否独立于平台/体系结构?

如果我在Windows(x86和x64)下的.NET上运行涉及System.Double的复杂计算,然后在Mono(Linux、Unix等)上运行,绝对有保证以在所有情况下得到完全相同的结果,或者规范是否允许在计算中有一些回旋余地? 最佳答案 来自MSDNInaddition,thelossofprecisionthatresultsfromarithmetic,assignment,andparsingoperationswithDoublevaluesmaydifferbyplatform.Forexample,theresul

c# - 要比较 double 和十进制,我应该将 double 转换为十进制还是将十进制转换为 double ?

我需要比较两个值。一个值是price这代表某物的当前价格等等decimal因为您实际上可以按照这个价格买卖东西。另一个值是estimatedPrice这是数学计算的结果,所以double因为它只是estimation你实际上不能通过这个esitmatedPrice做任何“操作”现在我想买如果price.那么我应该将price转换为double还是将estimatedPrice转换为decimal?我知道在转换后我会得到“略微不同”的数字,但似乎我没有其他选择。 最佳答案 这取决于数据。十进制具有更高的精度;double的范围更大。如

c# - 什么时候 System.Double 不是 double?

在看到double.Nan==double.NaN在C#中始终为false之后,我开始好奇相等性是如何在幕后实现的。所以我使用Resharper反编译了Double结构,这是我发现的:publicstructDouble:IComparable,IFormattable,IConvertible,IComparable,IEquatable{//stuffremoved...publicconstdoubleNaN=double.NaN;//morestuffremoved...}这似乎表明结构Double声明了一个常量,该常量是根据这个特殊的小写字母double定义的,尽管我一直认为

c# - 将秒数添加到具有 ArgumentOutOfRangeException 的有效 double 结果的 DateTime

下面的代码会崩溃和烧毁,我不明白为什么:DateTimedt=newDateTime(1970,1,1,0,0,0,0,DateTimeKind.Utc);doubled=double.Parse("1332958778172");Console.Write(dt.AddSeconds(d));有人能告诉我这是怎么回事吗?我只是似乎无法弄清楚为什么...编辑此值来自SalesforceRESTAPI,据我所知,它是一个Unix纪元时间戳。“token发行时间,表示为自Unix纪元(1970年1月1日00:00:00UTC)以来的秒数。”解决方案SalesforceRESTAPI实际上在

c# - 检查 int、string、double 等任何类型的 null 或 empty 的通用方法

我正在尝试让它工作,但不知何故它超出了我的控制范围......我希望能够检查null或empty到我分配的任何类型。例如:inti=0;stringmystring="";varreult=CheckNullOrEmpty(10)//passingintvarresult1=CheckNullOrEmpty(mystring)//passingstringpublicboolCheckNullOrEmpty(Tvalue){//checkfornulloremptyforstrings//checkfornulli.e.0forint}有人可以帮我解决这个问题吗?我想了解泛型如何适用于

c# - 无法将类型 'double' 隐式转换为 'long'

在这段代码中,我在评论的行中遇到了上述错误。publicdoublebigzarb(longu,longv){doublen;longx;longy;longw;longz;string[]i=textBox7.Text.Split(',');long[]nums=newlong[i.Length];for(intcounter=0;counter=seconddigits){n=firstdigits;}else{n=seconddigits;}if(u==0||v==0){MessageBox.Show("theMultiplyis0");}intintn=Convert.ToIn

c# - 如何快速将 object[,] 向上转换为 double[,]?

我使用Microsoft.Office.Interop.Excel我得到一个类型为object[,]的二维数组,其中包含元素的double.请注意,索引下限是1而不是默认的0,但我可以轻松处理。如何很好地使用.NET3.5将数组转换为double[,]。(我的意思是简洁或紧凑)。注意double[]values_2=values.Cast().ToArray();确实有效,但它按数组展平为一维结构。 最佳答案 object[,]src=newobject[2,3];//Initializesrcwithtestdoubles.src