计算剩余成本显示结果的百分比作为南

加入
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") + "%";

我正在尝试展示Number1从数量中减去数字后留下的百分比。我呼叫的值包含一个£符号,并且在运行代码时我得到的结果"NaN"我猜这与£签名有关,因为删除了代码的工作原理。任何人都知道我如何解决这个问题?没有运气,我一直在努力 :( Thanks in advance
 

sh

众所周知的成员
加入
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。

您应该检查双重尝试解析,以查看它是否正确转换。我建议 瞥了一眼文档?预防是最好的,最好确保您的数字是合格的整数。为了有趣,更改尝试解析解析,您可能会获得格式异常,而尝试解析只会忽略它,因此控制台的执行将为您提供您报告的结果。你明白你做错了什么吗?

您应该创建一个小功能来检查您的数字实际上是数字,而不只是盲目地尝试解析。
 

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,095
地点
挪威
编程经验
10+

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,712
地点
切萨皮克,va.
编程经验
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.

一个很好的阅读:
每个计算机科学家应该知道浮点算术
 
最佳 底部