Tag: decimal

文化不变的Decimal.TryParse()

我正在为十进制validation器编写一个自定义字符串,需要使用忽略文化的Decimal.TryParse(即不关心输入是否包含“。”或“,”作为小数点分隔符)。 这是建议的方法: public static bool TryParse( string s, NumberStyles style, IFormatProvider provider, out decimal result ) 我无法弄清楚要用什么作为第三个参数。 我见过的例子看起来像这样: culture = CultureInfo.CreateSpecificCulture(“en-GB”); Decimal.TryParse(value, style, culture, out number) 所以他们创造了一种特定的文化 CultureInfo没有“CreateInvariantCulture”方法,CultureInfo.InvariantCulture不是必需的类型。 什么是正确的用法?

十进制 – 截断尾随零

我注意到.NET在小数和尾随零时有一些时髦/不直观的行为。 0m == 0.000m //true 0.1m == 0.1000m //true 但 (0m).ToString() == (0.000m).ToString() //false (0.1m).ToString() == (0.1000m).ToString() //false 我知道必须遵守ECMA CLI标准。 但是,我想知道是否有内置的方法来截断十进制值的尾随零而不通过字符串表示(.ToString(“G29”)和解析后退技巧将起作用,但既不是快速也不是优雅的解决方案) ? 有任何想法吗? 非常感谢。

字符串到十进制转换:点分隔而不是逗号

我从文本框中读取了一个字符串。 它包含一个用于小数分隔的逗号。 我将NumberFormatInfo.CurrencyDecimalSeparator设置为, (逗号)但是当我将字符串转换为十进制时Convert.ToDecimal(mystring); 我得到一个小数点的单独值。 例: decimal a=Convert.ToDecimal(“1,2345”); —-> decimal is 1.2345 我也试过了: double a=Convert.ToDouble(“1,2345”); 但再次点到十进制

使用正确的小数点将字符串值转换为十进制

我有以字符串格式存储的值,我想转换为十进制。 例如: 我有11.10以字符串格式存储,当我尝试转换为十进制时,它给我11.1而不是11.10 。 我通过以下方式尝试了它 string getnumber=”11.10″; decimal decinum=Convert.ToDecimal(getnumber); 我也尝试了这个 decinum.ToString (“#.##”); 但它返回字符串,我希望这个十进制。 这可能是什么解决方案?

Oracle编号为C#decimal

我知道在互联网上有几个关于这个问题的post和post,我已经阅读过它们(不是每篇文章,我都要承认)但是没有一个能完全满足我。 我的情况: 我正在使用ODP.net(dll版本2.111.6.0)访问Oracle DB(版本10 + 11)和DataReader来检索数据(.NET 3.5,C#)。 使用此代码会导致’ System.OverflowException(算术运算导致溢出) 。 decimal.TryParse(oraReader.GetOracleDecimal(0).Value.ToString(), NumberStyles.Any, null, out parsedOraDecimal) 这一个导致值为’ 3,0000000000000000000000000000000000000000000000000000000000000E-126 ‘ decimal.TryParse(oraReader.GetOracleValue(0).ToString(), NumberStyles.Any, null, out parsedOraDecimal) 现在我必须找到一些方法来正确检索和评估这个值 – 数据库也可以从我无法控制的其他应用程序中使用,因此无法进行更改。 将我的C#代码中的类型从’decimal’转换为’double’也不是一个真正的选择。 有任何想法吗?

解析十进制并在右边过滤额外的0?

从XML文件中我收到格式的小数: 1.132000 6.000000 目前我正在使用Decimal.Parse,如下所示: decimal myDecimal = Decimal.Parse(node.Element(“myElementName”).Value, System.Globalization.CultureInfo.InvariantCulture); 如何将myDecimal打印到字符串中,如下所示? 1.132 6

从小数值末尾删除0

我有一个十进制值,后面有一个可变的位数. , 例如: 0.0030 0.0310 0.0001 1.1200 如何编写一个在小数结尾处删除0的动态函数?

C#检查小数是否超过3位小数?

我有一种情况我无法改变:一个数据库表(表A)接受6个小数位,而另一个表(表B)中的相关列只有3个小数位。 我需要从A复制到B,但如果A的小数位数超过3,则额外数据将丢失。 我无法更改表定义,但我可以添加一个解决方法。 所以我试图找出如何检查小数是否超过3位小数? 例如 Table A Id, Qty, Unit(=6dp) 1, 1, 0.00025 2, 4000, 0.00025 Table B Id, TotalQty(=3dp) 我希望能够找出表A中的Qty * Unit是否超过3位小数(第1行会失败,第2行会通过): if (CountDecimalPlaces(tableA.Qty * tableA.Unit) > 3) { return false; } tableB.TotalQty = tableA.Qty * tableA.Unit; 我如何实现CountDecimalPlaces(decimal value) {}函数?

将小数提高到十进制的幂?

.net框架在Math类中提供了一个为double提供动力的方法。 但是根据精度要求,我需要将小数提高到十进制幂[Pow(十进制a,十进制b)]。 框架是否具有这样的function? 有没有人知道有这种function的图书馆?

十进制数的正则表达式

我需要validationtextbox输入,并且只能允许十进制输入,如: X,XXX (十进制符号前只有一位数,精度为3)。 我正在使用C#并试试这个^[0-9]+(\.[0-9]{1,2})?$ ?