【问题标题】:Format a decimal without comma格式化不带逗号的小数
【发布时间】:2012-04-21 10:48:12
【问题描述】:

我尝试在 c# 中将小数格式化为 0:0.0 试过这段代码

string nv = textBox7.Text.Trim().Replace(',', '.');

res =  Convert.ToDecimal(nv, new CultureInfo("en-GB"));

但 res 总是用逗号显示结果,也尝试使用

new CultureInfo("en-GB")

但问题仍然存在 并提前感谢您。

【问题讨论】:

  • resdecimal,而不是字符串。所以它不能有格式。
  • 0:0.0decimal 意味着什么? :是什么意思?
  • @Oded 我猜它代表string.Format 中的0th 参数。
  • @CodeInChaos - 这是一个很好的猜测,也是我的假设,但希望 OP 解释一下,因为它并不完全清楚。
  • 调试器显示的 res 值与它在 dbase 中的存储方式无关。确保您的 dbase 列是数字而非文本。

标签: c# .net decimal


【解决方案1】:

正如其他 cmets 和答案所建议的那样,您首先需要了解一些基础知识。我可能会说一些你已经知道的事情,但请耐心等待:

  1. 您的textBox7.Text 包含string,而不是decimal
  2. 如果您想要 decimal 进行计算,则必须对其进行转换(我认为您已经做到了这一点)
  3. 因为res 是一个小数,所以当你想查看它的值时,SOMETHING 会将它转换为string。无论是您将其写入Console 还是当您将鼠标悬停在您的调试器上时。该转换将使用您当前的区域设置。 就是您总是看到逗号的原因。
  4. 要将其展示给其他人或以您想要的格式将其写入某处,您必须指定格式或 CultureInfo。

a)Standard Format。示例:
Console.WriteLine(res.toString("F2"));
这将在逗号后用 2 个数字格式化 123456:123456.00

b)Custom Format。示例:
Console.WriteLine(res.toString("[##-##-##]"));
这会将 123456 输出到类似 [12-34-56]

c)CultureInfo。示例:
Console.WriteLine(res.ToString(CultureInfo.CreateSpecificCulture("nl-BE")));
这将像在比利时一样输出 1234.56:带逗号 1234,56

顺便说一句,我认为 en-GB 也输出到逗号:-)

d)Combine。发疯!两者都做!示例:
Console.WriteLine(res.ToString("F2", CultureInfo.CreateSpecificCulture("nl-BE")));
格式 123456 到 123456,00 !

【讨论】:

    【解决方案2】:

    resdecimal,而不是字符串。所以它不能有格式。小数是没有关联格式的纯数学数字。该格式仅在您将 decimal 转换为 string 时才存在。

    您可以使用res.ToString(CultureInfo.InvariantCulture) 生成一个使用. 作为小数分隔符的字符串。

    【讨论】:

    • 我想在我的数据库中插入一个小数,
    • @user 你的问题在哪里?
    • 问题解决了,我认为我应该使用一个十进制变量来使用它一个sqlCommand指令,而且一个字符串也可以做出同样的想法,我使用了string nv = textBox7.Text.Trim( ).Replace(',', '.');
    • @user1348165 我不明白你的意思,但Replace(',', '.') 肯定不是正确答案。
    • 可能你想要decimal.ToString(decimal.Parse(input,someCulture), CultureInfo.InvariantCulture),但你太含糊了,我不明白你的实际问题。
    【解决方案3】:

    这将为您提供没有逗号的十进制数字,例如“15000.00”:

    FormatNumber(nv, , , , 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 2020-07-11
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多