使用从 int 到字符串 double 的字符串格式并保持小数 C# [重复]

Posted

技术标签:

【中文标题】使用从 int 到字符串 double 的字符串格式并保持小数 C# [重复]【英文标题】:Using String Format from int to string double and keeping decimal C# [duplicate] 【发布时间】: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表示 那个 数字是浮点类型 【参考方案1】:

这应该可以解决问题:

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

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

【讨论】:

或将100 转换为小数:string.Format("0:0.##", Amount / 100m) 非常感谢!

以上是关于使用从 int 到字符串 double 的字符串格式并保持小数 C# [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从 Ruby 中确定 sizeof(double) 和 sizeof(int) 的最简单方法是啥?

判断字符串到 double/float/int/short/byte 是不是超出范围

android如何将int和double作为namevaluepair作为http post发送

C#如何把INT类型转换为方法参数对应的枚举类型?怎么强制转换?

使用 UISlider 更新标签中的字符串而不是 Int/Double 等

MFC中如何吧CString类型转换为double或int型??