Formatting is Specified but argument is not IFormattable

private void DeviceSetText(TextBox textBox, string text)
        {
            //处理text的显示值
            if (text != "0")  //小数位后保留2位
            {
                //小数点后保留2位小数
                text = string.Format("{0:0.00}", text);
            }
            textBox.Invoke((MethodInvoker) delegate
            {
                textBox.Text = text;
            });
        }
text = string.Format("{0:0.00}", text);

和下面的问题类似

http://stackoverflow.com/questions/2849688/formatting-is-specified-but-argument-is-not-iformattable

string listOfItemPrices = items.ToSemiColonList(item => string.Format("{0:C}", item.Price.ToString()));

By passing item.Price.ToString() to String.Format, you are passing a string, not a decimal.
Since strings cannot be used with format strings, you're getting an error.

You need to pass the Decimal value to String.Format by removing .ToString().

string.Format里面处理的是数字,但是传递了字符串,所以有这个提示

原文地址:https://www.cnblogs.com/chucklu/p/4828075.html