使用从 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
但它会删除小数
【问题讨论】:
Amount
是 int
所以你在做整数除法。在你能直观地看到之前,你应该避免使用var
。只有当它不隐藏您需要查看的内容时,它才值得方便。
试试var Amount = 234.54m;
m后缀表示小数。
string.Format("0:0.00", Amount / 100m) // 234.54
Amount 定义为float
、double
或decimal
,或者在100
之后放置f
、d
或m
表示 那个 数字是浮点类型
【参考方案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类型转换为方法参数对应的枚举类型?怎么强制转换?