Convert.ToInt32() 条件格式根据带逗号的字符串

本文关键字:字符串 ToInt32 条件 格式 Convert | 更新日期: 2023-09-27 18:17:09

string str = e.Row.Cells[index].Text;
int value = Int32.Parse(str, NumberStyles.AllowThousands, NumberFormatInfo.InvariantInfo);
if (value >= 100)
    e.Row.Cells[index].BackColor = System.Drawing.Color.Green;

单元格值为 168,88 - 125,45 - 75,3

解析 str 后返回 16888 - 12545 - 753 ,因此所有单元格都设置为绿色

如何比较实际值。?

Convert.ToInt32() 条件格式根据带逗号的字符串

您正在使用NumberFormatInfo.InvariantInfo .这会将,视为千位分隔符。

你确定这是正确的吗?你的意思是使用类似 CultureInfo.GetCulture("fr-FR") 的东西,其中,是小数分隔符?

此外,如果需要保留小数部分,为什么要解析为整数?

这应该更适合您:

decimal.Parse(str, NumberStyles.AllowThousands, CultureInfo.GetCulture("fr-FR"));
我认为

您要查找的是:

int value = Int32.Parse(str, NumberStyles.AllowThousands, NumberFormatInfo.CurrentInfo);

NumberFormatInfo 告诉 Parse 函数应该如何解释输入。 InvariantInfo 读作 msdn 的Gets the default read-only NumberFormatInfo that is culture-independent (invariant)