Double-precision_floating-point_f
全部标签 .Net中是否有内置类型Point3?某种这样的publicclassPoint3D{publicdoubleX{get;set;}publicdoubleY{get;set;}publicdoubleZ{get;set;}}但是是内置的。自己实现它并不难,但是.. 最佳答案 System.Windows.Forms.DataVisualization.Charting有Point3D类。Representsthecoordinatesofathree-dimensional(3D)datapoint.Thisclassisused
我在stackoverflow上的不同帖子和C#文档中读到,将long(或任何其他表示数字的数据类型)转换为double会失去精度。由于float的表示,这一点非常明显。我的问题是,如果将较大的数字转换为double,精度损失有多大?我是否必须期望差异大于+/-X?我想知道这一点的原因是我必须处理一个long的连续计数器。这个值被我的应用程序读取为string,需要转换并且必须除以例如10或其他一些小数字,然后进一步处理。decimal是否更适合这项任务? 最佳答案 convertinglong(oranyotherdatatype
在处理线程安全时,我发现自己总是在执行锁block中的代码之前“仔细检查”,我想知道自己是否做对了。考虑以下三种做同样事情的方法:示例1:privatestaticSomeCollectionMyCollection;privatestaticObjectlocker;privatevoidDoSomething(stringkey){if(MyCollection[key]==null){lock(locker){MyCollection[key]=DoSomethingExpensive();}}DoSomethingWithResult(MyCollection[key]);}示
我在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.>
我有一个用户输入,它可以包含范围从3.06或3,06的浮点值我们所处的文化是法语,因此当用户输入3.06并且我对该值运行float.tryParse时,它不会转换为3.06到新变量(类型float)中//inputUsedAmount.ValuefromUIis:3.06floatusedAmount=0.0f;float.TryParse(inputUsedAmount.Value,outusedAmount);//returnsfalse我可以简单地从“.”替换从用户界面输入的金额。到“,”,但是有没有一种优雅/更好的方式通过Culture来做到这一点?谢谢
我有这样的代码:lblFranshizShowInvwNoskhehEdit.Text=string.Format("{0:n}",(double)(int.Parse(drDarman["FranshizDarsad"].ToString())*Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text))/100);但是{0:n0}字符串格式强制标签的文本没有小数位,而{0:n}字符串格式强制标签的文本有2个小数位数字(默认)。在我的场景中,我只需要必要时的小数位/不四舍五入/我该怎么做? 最佳答案
因为只有引用类型和一些基元(包括float,但不包括double,我不确定原因,我很高兴听到原因)可以声明为volatile,如果我在类中包装double然后将其声明为volatile(如下所示),double属性是否会像任何其他volatile一样是“读写”线程安全的,还是我仍然应该考虑锁定?publicclassMyThreadedClass{volatileVolatileDoublevoldub;}publicclassVolatileDouble{publicdoubleDouble{get;set;}} 最佳答案 dou
这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Howtodetermineifadecimal/doubleisaninteger?我有一个独特的情况,所有数字都必须在我的数据库中保存为double数据类型,但只有在某些情况下,超出整数级别的精度才有值(value)。起初,我尝试只使用int,然后在这些独特的分数出现时抽象到一个新表,但在这样做了几周之后,我现在可以看到它过于愚蠢并且浪费我的时间。我知道我可以将double转换为int。那很容易。我知道怎么翻译过来。我不知道如何测试以将其翻译过来。我基本上希望想出一个简短、简单的方式来表达Isthisnum
我有来自数据库(字符串)表的数据,其中包含文本和价格。我从数据中提取价格,但我的问题是有时我可以将其转换为float价格,有时则不能。我注意到了:Convert.ToSingle(m.Groups[1].Value);它有效,但并不总是有效,因为有时句号是问题所在(它需要一个逗号)。我能做什么?我尝试将“.”替换为“,”,但有时在其他PC上需要使用句号! 最佳答案 您遇到此问题是因为转换会检查您PC的语言。您将需要执行以下操作:Convert.ToSingle(m.Groups[1].Value,CultureInfo.Invari
这个问题是关于Math.Floor(double)和Math.Ceiling(double)决定给你上一个或下一个整数值的阈值。我很不安地发现阈值似乎与Double.Epsilon无关,它是可以用double表示的最小值。例如:doublex=3.0;Console.WriteLine(Math.Floor(x-Double.Epsilon));//expected2,got3Console.WriteLine(Math.Ceiling(x+Double.Epsilon));//expected4,got3即使将Double.Epsilon乘以一个合理的位也没有成功:Console.W