【问题标题】:Using String Format from int to string double and keeping decimal C# [duplicate]使用从 int 到字符串 double 的字符串格式并保持小数 C# [重复]
【发布时间】:2020-10-19 15:37:13
【问题描述】:

我有金额

  var Amount = 23454;

我需要像这样格式化它:234.54

我搜索了类似的问题并尝试了这个:

  String.Format("{0:0.00}", Amount / 100) // 234.00
  String.Format("{0:0.##}", Amount / 100) // 234
  (Amount / 100).ToString(CultureInfo.CreateSpecificCulture("en-GB")) // 234

但它会删除小数

【问题讨论】:

  • Amountint 所以你在做整数除法。在你能直观地看到之前,你应该避免使用var。只有当它不隐藏您需要查看的内容时,它才值得方便。
  • 试试var Amount = 234.54m; m后缀表示小数。
  • string.Format("{0:0.00}", Amount / 100m) // 234.54 Amount 定义为floatdoubledecimal,或者在100 之后放置fdm表示 那个 数字是浮点类型

标签: c# decimal string-formatting number-formatting


【解决方案1】:

这应该可以解决问题:

String.Format("{0:0.##}", ((Decimal)Amount) / 100)

如前所述,您使用的是整数而不是小数。您必须在执行逻辑之前对其进行转换

【讨论】:

  • 或将100 转换为小数:string.Format("{0:0.##}", Amount / 100m)
  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2013-09-14
  • 2011-07-22
  • 2014-09-05
  • 1970-01-01
  • 2011-05-25
  • 2019-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多