Tag: 十进制

如何格式化小数而不尾随零

我刚才知道小数点会以某种方式记住存储一个数字需要多少trailaing零。 换句话说:它会记住分数的大小。 例如: 123M.ToString() ==> resuls in: 123 123.00M.ToString() ==> resuls in: 123.00 123.450M.ToString() ==> resuls in: 123.450 我正在寻找一个格式化字符串或另一个技巧来摆脱那些“不需要的”尾随零,但保持有效数字。 所以: 123M.ToString() ==> resuls in: 123 123.00M.ToString() ==> resuls in: 123 123.450M.ToString() ==> resuls in: 123.45 删除新字符串末尾的零对我来说不是一个真正的选择,因为那时我必须找出字符串是否包含一个分数,如果是,还必须删除可选的’。’。 或’,’取决于文化等。

c#十进制为货币字符串

要显示我们所做的货币: ToString(“0.##”) 对于值5.00 ,输出为: 5 对于值5.98 ,输出为: 5.98 对于值5.90 ,输出为: 5.9 我需要第三种情况才能得到2个小数点,例如: 5.90 如果不影响其他结果我怎么能这样做?

Int到十进制转换 – 在指定位置插入小数点

我有以下int 7122960 我需要将其转换为71229.60 有关如何将int转换为小数并将小数点插入正确位置的任何想法?

ASP.NET MVC绑定十进制值

我试图找出为什么框架拒绝将“1,234.00”值绑定到十进制。 可能是什么原因呢? 像“123.00”或“123.0000”这样的值绑定成功。 我有以下代码在Global.asax中设置我的文化配置 public void Application_AcquireRequestState(object sender, EventArgs e) { var culture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); culture.NumberFormat.NumberDecimalSeparator = culture.NumberFormat.CurrencyDecimalSeparator = culture.NumberFormat.PercentDecimalSeparator = “.”; culture.NumberFormat.NumberGroupSeparator = culture.NumberFormat.CurrencyGroupSeparator = culture.NumberFormat.PercentGroupSeparator = “,”; Thread.CurrentThread.CurrentCulture = culture; } 法国文化在Web.Config中被设置为默认文化 我潜入了System.Web.Mvc.dll的ValueProviderResult类的源代码。 它使用的是System.ComponentModel.DecimalConverter。 converter.ConvertFrom((ITypeDescriptorContext) null, culture, value) 这是消息“1,234.0000不是十进制的有效值”。 来自。 我试图在我的操场上运行以下代码: static void Main() { var decConverter = TypeDescriptor.GetConverter(typeof(decimal)); var culture = new […]

C#小数分隔符?

我有一个返回如下数字的方法: public decimal GetNumber() { return 250.00m; } 现在,当此值打印到控制台时,它有一个逗号(250,00)而不是一个点(250.00)。 我总是想在这里说一点,我做错了什么?

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

这个错误应该是一个简单的错误,但我似乎无法使它工作。 问题在于,这个相同的代码在程序的早期工作。 我没有看到任何理由在这个实例上发送错误而不是之前的四个错误。 参考下面的代码,随意提供任何批评,因为它应该让我更好。 如果重要,我正在使用Sharp Develop 2.2。 以下是有效代码示例: void calc2Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(tb2_fla.Text) & String.IsNullOrEmpty(tb2_e.Text) | String.IsNullOrEmpty(tb2_fla.Text) & String.IsNullOrEmpty(tb2_e.Text) | String.IsNullOrEmpty(tb2_e.Text)) { MessageBox.Show(“Enter either kVA and Voltage or FLA and Voltage”, “Invalid Data Entry”, MessageBoxButtons.OK); } if (!String.IsNullOrEmpty(tb2_kva.Text) & !String.IsNullOrEmpty(tb2_e.Text)) { decimal x, y, z; x = decimal.Parse(tb2_kva.Text); y = decimal.Parse(tb2_e.Text); z […]

使用decimal.ToString(“C”)和CultureInfo的自定义货币符号和小数位

我有一个decimal.ToString(“C”)覆盖问题。 基本上我想做的是如下: CultureInfo usCulture = new CultureInfo(“en-US”); Thread.CurrentThread.CurrentCulture = usCulture; NumberFormatInfo LocalFormat = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone(); LocalFormat.CurrencySymbol = “RM”; 我想使上面的代码成为一个函数(覆盖ToString(“C”)),从而执行以下代码时: decimal paid = Convert.ToDecimal(dr[“TotalPaids”]); lblPaids.Text = paid.ToString(“C”); 结果将是RM4,900.00而不是$ 4,900.00 如何为decimal.ToString(“C”)创建一个可以解决我的问题的覆盖 提前致谢。

我如何在C#中用空格分隔数千个

假设我有以下十进制数,我必须格式化,以便每千个应该用空格分隔: 897.11 to 897.11 1897.11 to 1 897.11 12897.11 to 12 897.11 123897.11 to 123 897.11 我试过Decimal.ToString(“0 000.00”)。 虽然这个数字是1897.11时效果很好。 但是当它是897.11时我得到0 897.11。

Decimal.Parse和不正确的字符串格式错误

我有一个十进制解析的简单问题。 以下代码在我的计算机上正常工作,但是当我在服务器上发布项目(VPS,Windows Server 2008 R2标准版)时,我收到错误“输入字符串的格式不正确”。 有什么想法有什么不对吗? 我将解析后的数字存储在MySQL数据库表中 – 列类型为DECIMAL(10, 4) 源代码: CultureInfo nonInvariantCulture = new CultureInfo(“en-AU”); //or pl-PL nonInvariantCulture.NumberFormat.NumberDecimalSeparator = “.”; Thread.CurrentThread.CurrentCulture = nonInvariantCulture; string toConvert = (“3,4589”).Replace(“,”, “.”); //it’s an example decimal parsed = decimal.Parse(toConvert);

C#如何始终向下舍入到最接近的50

我已经对C#舍入进行了搜索,但未能找到我当前问题的答案。 我想要做的是总是向下舍入到最接近的50.我要舍入的所有值都是十进制的。 所以635.25将是600。 298.42将是250。 149.56将是100。 我看过math.round但是我怎么用它,所以它总是向下舍入到最接近的50并且从不向上?