c# - 比较从字符串转换的两个浮点数
问题描述
比较从字符串转换的两个浮点数时出现问题。当我比较带两位小数的数字(例如 30,25)时,我没有任何问题,但是当数字只有一位(30,6)时,结果很糟糕。
例如,结果30,6 > 30,25
是false
(我没想到)。
if (gvr.RowType == DataControlRowType.DataRow)
{
double CyklusSAP = 0;
double CyklusReal = 0;
bool prevod = false;
CyklusSAP = double.Parse(gvr.Cells[10].Text, System.Globalization.CultureInfo.InvariantCulture);
prevod = double.TryParse(gvr.Cells[11].Text,out CyklusReal);
if (prevod)
{
CyklusReal = double.Parse(gvr.Cells[11].Text, System.Globalization.CultureInfo.InvariantCulture);
if (CyklusReal < CyklusSAP - 1)
{
gvr.Cells[11].BackColor = System.Drawing.Color.LightBlue;
}
if (CyklusReal > CyklusSAP - 1 && CyklusReal < CyklusSAP)
{
gvr.Cells[11].BackColor = System.Drawing.Color.LightGreen;
}
if (CyklusReal > CyklusSAP && CyklusReal < CyklusSAP + 1)
{
gvr.Cells[11].BackColor = System.Drawing.Color.LightYellow;
}
if (CyklusReal > CyklusSAP + 1)
{
gvr.Cells[11].BackColor = System.Drawing.Color.Red;
}
}
}
当第二行比第一行大时,第二行是红色的。
解决方案
您正在使用不变的文化。在不变文化中,,
是千位分隔符,而不是小数分隔符。所以你的数字变成306
和3 025
。您需要使用正确的文化来解析数字。
推荐阅读
- r - rjava 和 java 问题与 r 在 mac os mojave 问题上
- android - 自治 DFU 北欧
- eclipse-plugin - 类似于
对于命令处理程序 - google-apis-explorer - 无法从 DCM 中检索广告素材
- html - HTML 日期选择器与日期输入重叠
- python - 从python中的.eml文件解析excel附件
- git - 我可以为几个目录创建一个 git 存储库,这些目录不一定共享一个祖先目录,除了 root `/`?
- identityserver4 - 我们可以在示例 API 项目中使用身份服务器 4 和访问令牌有效 tor 吗?
- karate - 如何在请求中将动态值设置为json字符串的键
- javascript - 您将如何修复或改进组件?