gpt4 book ai didi

c# - Convert.ToDecimal(String.Format ("{0:.##}", doubleAmount)) 不喜欢 0.0

转载 作者:太空宇宙 更新时间:2023-11-03 19:12:55 25 4
gpt4 key购买 nike

这一行有格式问题:

Decimal amount = Convert.ToDecimal(String.Format("{0:.##}", doubleAmount));  

如果 doubleAmount 为 0.0,则会抛出格式异常。我如何处理 0.0?

最佳答案

问题是格式字符串{0:.##}将0格式化为空字符串,但是空字符串不是 Convert.ToDecimal 的有效参数。为避免可能的 FormatException,您可以使用 {0:0.##} 将 0 格式化为 0

(用户 sasfrog 建议 {0:#.##},但由于这也将 0 格式化为空字符串,因此它不起作用。)

但是,如果您只是想将 Double 值四舍五入到小数点后两位并将结果存储在 Decimal 变量中,那么您应该使用

Decimal amount = Decimal.Round((Decimal)doubleAmount, 2, MidpointRounding.AwayFromZero);

并跳过不必要的字符串格式化和解析开销。

关于c# - Convert.ToDecimal(String.Format ("{0:.##}", doubleAmount)) 不喜欢 0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19327330/

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