草庐IT

decimal-point

全部标签

c# - 比 decimal.Parse 更快的替代方法

我注意到decimal.Parse(number,NumberStyles.AllowDecimalPoint,CultureInfo.InvariantCulture)比基于JeffreySax来自FasteralternativetoConvert.ToDouble的代码的自定义十进制解析方法慢大约100%publicstaticdecimalParseDecimal(stringinput){boolnegative=false;longn=0;intlen=input.Length;intdecimalPosition=len;if(len!=0){intstart=0;if(

c# - c# 中的 decimal 误解?

(在尝试分析decimal的工作原理时)&&在阅读@jonskeetarticle之后看到msdn,并思考了最后4个小时,我有一些问题:在thislink他们说的很简单:1.5x10^2有2位有效数字1.50x10^2有3位有效数字。1.500x10^2有4有效数字等...好的...我们明白了。来自jon的文章:sign*mantissa/10^exponentAsusual,thesignisjustasinglebit,butthereare96bitsofmantissaand5bitsofexponent^_^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

c# - 有Point3D吗?

.Net中是否有内置类型Point3?某种这样的publicclassPoint3D{publicdoubleX{get;set;}publicdoubleY{get;set;}publicdoubleZ{get;set;}}但是是内置的。自己实现它并不难,但是.. 最佳答案 System.Windows.Forms.DataVisualization.Charting有Point3D类。Representsthecoordinatesofathree-dimensional(3D)datapoint.Thisclassisused

c# - 来自 Microsoft 的“Decimal”源代码 - 它会构建吗?

我最近试图回答aquestionthatauserposted关于为什么decimal结构没有像所有其他数字基元一样将其最小/最大值声明为const;相反,Microsoft文档指出它是staticreadonly。在研究过程中,我深入研究了Microsoft源代码,并得出了一个有趣的发现;源代码(.NET4.5)使它看起来像一个const,这与文档明确说明的内容相反(源代码和相关的结构构造函数粘贴在下面)。publicconstDecimalMinValue=newDecimal(-1,-1,-1,true,(byte)0);publicconstDecimalMaxValue=ne

c# - 将 System.Decimal 转换为 System.Guid

我有一个很大的字典,其中的键是十进制,但是System.Decimal的GetHashCode()非常糟糕。为了证明我的猜测,我运行了一个包含100.000个相邻小数的for循环并检查了分布。100.000个不同的十进制数字仅使用2(两个!!!)不同的哈希码。十进制表示为16个字节。就像Guid一样!但是Guid的GetHashCode()分布非常好。如何尽可能便宜地将小数转换为C#中的Guid?不安全的代码是可以的!编辑:请求测试,所以这里是代码:decimald=96000000000000000000m;Dictionaryhashcount=newDictionary();in

c# - "Compile with/main to specify the type that contains the entry point."

根据下面的代码,我收到以下消息。我相当确定我得到它的“原因”,我只是不知道如何重新排列代码以移动/删除/替换导致错误的语句之一。“使用/main编译以指定包含入口点的类型。”"staticvoidMain(string[]args)"下有一堆代码,我从http://support.microsoft.com/kb/816112为了从自动递增中获取ID,所以当其余代码填充Access数据库时,我可以让它自动递增。任何帮助表示赞赏。也欢迎使用更简单的代码获得结果的建议!namespaceWindowsFormsApplication1{publicpartialclassForm1:For

c# - Decimal.Round() 如何抛出 OverflowException

我在用Decimal.Round(decimald)MSDN说它可以抛出OverflowExceptionhttps://msdn.microsoft.com/en-us/library/k4e2bye2(v=vs.110).aspx我不确定这是怎么发生的。我尝试使用ilSpy查看实现并得到直到外部实现://decimal[SecurityCritical][MethodImpl(MethodImplOptions.InternalCall)]privatestaticexternvoidFCallRound(refdecimald,intdecimals);有人知道什么输入可以抛出这

c# - 如何使用反射将 int 转换为 decimal?

我有一些代码(工作正常)看起来像这样:intinteger=42;decimal?castTo=integer;然后我想用反射做一些类似的事情,一些代码看起来像这样:objectvalue=source;//sourcewasanintoriginallyvarparameters=newobject[1];...parameters[0]=value;varsetMethod=property.GetSetMethod();//Callthesetmethod,whichtakesadecimal?asaparametersetMethod.Invoke(o,parameters);

c# - Json.NET 基本类型 - 使用 Decimal 而不是 Double

从JSON解析float时,如何让JSON.NET返回小数而不是double?(这是一个序列化的带有Dictionary的对象)。我已经尝试编写一个JsonConverter,但是CanConvert方法没有被调用为Double类型以尝试转换它。还有其他关于覆盖JsonTextReader的代码,但这在最新版本的Json.Net中似乎不可能。 最佳答案 在Json.NET5.0中,Newtonsoft.Json.JsonSerializerSettings类有新的属性FloatParseHandling,你可以设置这个属性值Newt

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

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