以NaN计算剩余成本显示结果的百分比

圣方济各

成员
已加入
2019年6月7日
留言内容
6
编程经验
1-3
C#:
double number;
             double number1;
             double result;

             double.TryParse(SelectedQuoteForEditing.JobPrice, out number);  double.TryParse(lblRate.Content.ToString().ToString(), out number1);

                var left = Math.Round((number - number1) / number * 100, 2);

                result = left;

               ERGPerc.Content = result.ToString("P") + "%";

我正在福彩12选5走势图显示number1从number中减去后剩下的百分比。我正在调用的值包含一个£符号,当运行代码时,我得到的结果是"NaN"我想这与英镑符号有关,因为删除的代码有效。有人知道我该如何解决吗?我已经福彩12选5走势图了好几个小时没有运气 :( Thanks in advance
 

羊皮

知名会员
已加入
2018年9月5日
留言内容
1,982
编程经验
10+
处理数字时,它们应为数字格式。假设您有::
C#:
            var i = "£150";

            var new_i = i.Replace("£", "");

            Console.WriteLine(new_i);
这将输出150,因此一开始就删除了该符号。

您也可以使用::
C#:
            var i = "£150";

            var new_i = i.Substring(1);

            Console.WriteLine(new_i);
这也将输出150。

您应该检查两次福彩12选5走势图解析,以查看其转换是否正确。我可能会建议 浏览文档?预防是最好的方法,它可以更好地确保您的数字是合格的整数。有趣的是,将try parse更改为parse,您很可能会收到格式异常,而try parse只会忽略它,因此执行控制台将为您提供报告的结果。你知道你做错了什么吗?

您应该创建一个小函数来检查您的数字是否为实际数字,而不仅仅是盲目福彩12选5走势图解析。
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,076
地点
挪威
编程经验
10+

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,612
地点
弗吉尼亚州切萨皮克
编程经验
10+
As a quick aside, when dealing with money, don't use double or float. Use decimal instead. Although all three of the types are floating point type numbers, the latter was specifically designed to be more stable and not have the same amount of rounding issues as the former two types.

一本好书:
每个计算机科学家都应了解的浮点运算法则
 

圣方济各

成员
已加入
2019年6月7日
留言内容
6
编程经验
1-3
Hi thanks for your replies I was able to fix problem by adding NumberStyles.Any, CultureInfo.GetCultureInfo("en-GB") to my TryParse.

我将对该文章表示感谢。
 
最佳 底部