gpt4 book ai didi

c# - 计算剩余成本的百分比显示结果为 NaN

转载 作者:太空狗 更新时间:2023-10-30 00:29:31 24 4
gpt4 key购买 nike

我试图显示从数字中减去数字 1 后剩下的百分比。我调用的值包含一个 £ 符号 并且在运行代码时我得到的结果是 NaN 我猜这与 £ 有关删除百分比显示时的符号。有人知道我该如何解决这个问题吗?我已经尝试了几个小时都没有运气 :( 提前致谢。

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

最佳答案

嗯,double.NaN0.0/0.0 的结果。

0.0 / 0.0 == double.NaN

这就是为什么 numbernumber1 都是 0.0 的原因。这意味着

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

SelectedQuoteForEditing.JobPrice0.0 或无效(例如,空字符串),对于 lblRate.Content.ToString().ToString().

检查 double.TryParse 返回的值:

if (double.TryParse(SelectedQuoteForEditing.JobPrice, out number) &&  
double.TryParse(lblRate.Content.ToString(), out number1) {

var left = Math.Round((number - number1) / number * 100, 2);
ERGPerc.Content = left.ToString("P") + "%";
}
else {
// at least one value is invalid
}

编辑:如果你想解析货币,说GB(见评论中的£150.00 ), 你必须让系统知道它:

double.TryParse(SelectedQuoteForEditing.JobPrice, 
NumberStyles.Any, // allow currency symbols
CultureInfo.GetCultureInfo("en-GB"), // which currency? GB
out number);

double.TryParse(lblRate.Content.ToString(),
NumberStyles.Any, // allow currency symbols
CultureInfo.GetCultureInfo("en-GB"), // which currency? GB
out number1);

否则 Parse 失败(£ 是什么意思?它没有更正部分浮点值!)你会得到 0.0对于 numbernumber1double.NaN(number - number1)/number 上执行

关于c# - 计算剩余成本的百分比显示结果为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495640/

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