【问题标题】:Force two decimal places in C# [duplicate]在C#中强制保留两位小数[重复]
【发布时间】:2014-09-03 18:55:22
【问题描述】:

我遇到了这个问题,找不到解决方案。 这超级简单,我不知道为什么我找不到解决方案。

问题:

  • 如果一个值返回例如“16.60”,在c#中我会读到“16.6”,但我也需要0,因为paypal API,它只接受一个没有十进制数字的值,或者如果它必须有十进制数,最小值和最大值必须为 2。

那我该怎么做呢?

我试过这个:

        string value_f = "16,6";
        decimal value_f_d = decimal.Parse(value_f);
        value_f_d = (decimal)Math.Round(value_f_d, 2);
        value_f = value_f_d.ToString("#.##");
        value_f = value_f.Replace(',', '.');

我想要这个输出:16.60,但给出这个:16.6

【问题讨论】:

  • 您是否阅读了采用格式字符串的ToString 重载的文档?它告诉你# 是什么意思?

标签: c#


【解决方案1】:
string output = value_f_d.ToString("#.00", CultureInfo.InvariantCulture);

using System.Globalization 在顶部的 using 声明中)

【讨论】:

  • 另外,考虑使用 InvariantCulture 来格式化您的号码。这避免了更换小数分隔符的必要性。 IE。 var output = value_f_d.ToString("#.00", System.Globalization.CultureInfo.InvariantCulture)
  • @dbc,好电话 - 已更新答案。谢谢。
猜你喜欢
  • 2020-09-11
  • 2021-12-13
  • 2014-02-08
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多