jjzjj

C#,运算符 '*' 不能应用于类型 'double' 和 'decimal' 的操作数

这个错误应该是一个简单的错误,但我似乎无法让它工作。问题在于这个完全相同的代码在程序的早期工作。我看不出有任何理由让它在此实例上而不是前四个实例上发送错误。引用下面的代码,并随时提出您可能有的任何批评,因为它应该会让我变得更好。如果重要的话,我正在使用SharpDevelop2.2。这是一个有效的代码示例:voidcalc2Click(objectsender,EventArgse){if(!String.IsNullOrEmpty(tb2_fla.Text)&String.IsNullOrEmpty(tb2_e.Text)|String.IsNullOrEmpty(tb2_fla.T

c# - 在没有 OverflowException 的情况下将 "1.79769313486232E+308"转换为 double?

我有这个字符串“1.79769313486232E+308”,我试图将它转换为.NET数值(double?),但出现以下异常。我正在使用Convert.ToDouble()。进行此转换的正确方法是什么?OverflowException:ValuewaseithertoolargeortoosmallforaDouble 最佳答案 不幸的是这个值大于double.MaxValue,因此异常。正如codekaizen所建议的,您可以对字符串的测试进行硬编码。如果您首先生成字符串,则更好的(IMO)替代方法是使用“r”格式说明符。然后您

c# - C# 中的新类型定义

我正在寻找定义新类型并在C#中使用它的可能性,如下所示:类定义:publicclassPosition{publicdouble180Longitude{get;set;}//double180isatypewithinarange-180and180publicdouble90Latitude{get;set;}//double90isatypewithinarangeof-90and90}用法:varposition=newPosition{Longitude=45,Latitude=96//Thislineshouldgiveanerrorwhileinitializingthe

c# - 整数与 double 算术性能?

我正在编写一个C#类来使用整数执行2D可分离卷积,以获得比双对应更好的性能。问题是我没有获得真正的性能提升。这是X过滤器代码(它对int和double情况都有效):foreach(pixel){intvalue=0;for(intk=0;k在整数情况下,“value”、“InputImage”和“tempImage”是“int”、“Image”和“Image”类型。在双大小写“value”中,“InputImage”和“tempImage”是“double”、“Image”和“Image”类型。(filterValues在每种情况下都是int[])(图像类是外部dll的一部分。它应该类

C# 求第 N 个根

我用下面的方法计算double值的N次方根,但是计算240次方根需要很多时间。我发现了牛顿法,但无法将其实现为一种方法。任何帮助,将不胜感激。staticdoubleNthRoot(doubleA,intN){doubleepsilon=0.00001d;//doublen=N;doublex=A/n;while(Math.Abs(A-Power(x,N))>epsilon){x=(1.0d/n)*((n-1)*x+(A/(Power(x,N-1))));}returnx;} 最佳答案 staticdoubleNthRoot(dou

c# - 为什么此 C# 代码无法编译?

double?test=true?null:1.0;在我的书中,这与if(true){test=null;}else{test=1.0;}但是第一行给出了这个编译器错误:Typeofconditionalexpressioncannotbedeterminedbecausethereisnoimplicitconversionbetween''and'double'. 最佳答案 发生这种情况是因为编译器试图从右到左评估语句。这意味着它看到1.0并确定它是双倍(不是双倍?),然后它看到null。所以double和null之间显然没有隐

c# - 给定数字之间的随机加倍

我正在寻找一些简洁的现代C#代码来生成1.41421和3.14159之间的随机double。其中数字应为[0-9]{1}.[0-9]{5}格式。我在想一些利用Enumerable.Range的解决方案可能会使这个更简洁。 最佳答案 您可以轻松定义一个返回两个值之间的随机数的方法:privatestaticreadonlyRandomrandom=newRandom();privatestaticdoubleRandomNumberBetween(doubleminValue,doublemaxValue){varnext=rando

c# - 为什么静态分析会忽略 double <= 和 >= 要求?

我有一个使用.NET代码契约的非常简单的类:publicclassContractSquareRoot{//////MakesyourlifemucheasierbycallingMath.Sqrtforyou.Ain'tthatpeachy.//////Thevaluetocalculatethesquarerootfrom.Nonegatives!///Thesquarerootofthegivenvalue.Obviouslyalways>0.publicdoubleCalculateSquareRoot(doublevalue){Contract.Requires(0());d

c# - 为什么对于这种特定情况,结构比类快得多?

我有三个案例来测试类、具有继承的类和结构的相对性能。这些将用于紧密循环,因此性能很重要。点积被用作2D和3D几何中许多算法的一部分,我已经在真实代码上运行了分析器。以下测试表明了我所见过的现实世界中的性能问题。循环100000000次点积的结果ControlA208ms(classwithinheritence)ControlB201ms(classwithnoinheritence)ControlC85ms(struct)测试在没有调试和优化的情况下运行。我的问题是,在这种情况下,类是什么导致它们如此缓慢?我假设JIT仍然能够内联所有调用、类或结构,因此实际上结果应该是相同的。请注意

c# - 指针偏移导致溢出

以下结果对我来说没有任何意义。看起来在执行加法或减法之前将负偏移量转换为无符号。double[]x=newdouble[1000];inti=1;//fortheoverflowitmakesnodifferenceifitislong,intorshortintj=-1;unsafe{fixed(double*px=x){double*opx=px+500;//=0x33E64B8//unchecked//{double*opx1=opx+i;//=0x33E64C0double*opx2=opx-i;//=0x33E64B0double*opx3=opx+j;//=0x33E64B