gpt4 book ai didi

c# - 格式化不带逗号的小数

转载 作者:太空狗 更新时间:2023-10-29 22:16:47 27 4
gpt4 key购买 nike

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

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

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

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

new CultureInfo("en-GB")

但问题依旧提前谢谢你。

最佳答案

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

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

a) Standard Format 。示例:
Console.WriteLine(res.toString("F2"));
这会将 123456 格式化为逗号后的 2 个数字: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 !

基于此,我建议如下:

decimal res = Convert.ToDecimal(textBox7.Text, new CultureInfo("en-GB"));

这假设您的用户使用逗号输入数字(因为 en-GB 小数点分隔符是逗号)。如果不是,请使用正确的 CultureInfo,例如 en-US 的不变量。

关于c# - 格式化不带逗号的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258243/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com