c# 程序 string.format(),用法有误吗?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
double corpusAmount, interestRate,
interestAmount, incomeAmount;
int depositYear; //本金,利率,利息,总收入,存期
try // 录入数据
{
corpusAmount = double.Parse(this.corpusTextbox.Text);
interestRate = double.Parse(this.interestRatetextBox.Text);
depositYear = Int32.Parse(this.depositYeartextBox3.Text);
}
catch //异常处理
{
MessageBox.Show(" Input dismatached !");
return;
}
incomeAmount = corpusAmount * (Math.Pow((1 + interestRate), depositYear)); //计算总收入
interestAmount = incomeAmount - corpusAmount; //计算利息
//格式化列表
string strList;
strList = string.Format(" {0,15:c } {1,15:c } "
, interestAmount, incomeAmount);
listBox1.Items.Add(strList); //输出```
}
}

}
用断点调试时,其余参数正常,但strlist的值为null,请问,哪里出错了,我困惑了一天了...

c后面 不要空格
double value1 = 16932.456;
double value2 = 15421.354;// {0,15:c } {1,15:c } 这个有空格 错误的
string result = String.Format("{0,15:c} {1,15:c}", value1, value2);追问

不,我多次尝试,
{0,15:c } {1,15:c } 和{0,15:c} {1,15:c}调试后都出现Format specifier was invalid
啊,比尔盖茨

追答

呵呵 刚才调试了一下 是格式错误哈 太粗心了
该这样写
string result = String.Format("{0:c15} {1:c15}", value1, value2);

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-25
strList = string.Format(" {0,15:c } {1,15:c } "
这个是啥?{}里面不是占位符吧。。。
format的用法是string.Format("{0},{1}",value1,value2);
{0}{1}都是占位符,分别对应value1和value2的值
第2个回答  2012-02-25
返回的是2个double数值,一个得息,一个总收到,你用string.Format把他们转换成字符串,比如一个数是10.59,另一个数是11.49,stringList="10.59$11.49$"(15:C应该表示货币吧),你查下interestAmount,和incomeAmount有值么?追问

都有,我调试后,发现是
strList = string.Format(" {0,15:c } {1,15:c } "
, interestAmount, incomeAmount);
这句出错.
因为调试到上述处,strlist的值是null.
查了format的用法,历尽头发蓬松,终于搞定了!
谢谢!

第3个回答  2012-02-25
format不是用来赋值的嘛,追问

这是格式化

c# 大神帮看下 我想用string.format来格式化 之后用select 选择数据 报...
{'0'}*{'3'} \/\/这种写法引号和括号反了。strsql.Format ---> string.Format

c#中的string.format()这两种写法那个更好?
讨论 C# 中 `string.format()` 的两种写法,即 `String.Format("a = {0}", a.ToString())` 和 `String.Format("a = {0}", a)` 的性能比较,主要关注的是 `a` 是否需要通过 `ToString()` 方法转换成字符串。对于 `int a;` 类型的变量,直接调用 `ToString()` 导致了一次 `auto ...

c#中string message = string.Format()的意义和用法
这是格式字符串。前面的{}里的数字是索引,而且必须从0开始。引号后面的值的个数必须和索引一样,而且必须一一对应。这个一般是在输出字符串里面包含有变量的时候用。

...但是System.FormatException:“输入字符串的格式不正确。”_百度知...
报错的地方是要把 字符串 转为float。但是 字符串的内容 不是 数值,所以无法转换就报错了。你断点看下报错时 list[k]的内容就知道了

C# string.Format用法详解
探讨C#中string.Format的使用方法,展示其在不同场景下的应用。实例1:输出包含多个参数的字符串。Console.WriteLine(string.Format("参数1:{0} 参数2:{1}", "str1", "str2")) \/\/ 参数1:str1 参数2:str2 实例2:货币格式化。Console.WriteLine(string.Format("{0:C3}", 2)) \/\/ $2...

C#中string.Format怎么用
如果有占位符{0}这样的可以往这个占位符里面插入指定的内容。比如:string str="你好:{0}!您的{1}回答在{2}被采纳了。";string ret=string.Format(str,"张三","百度知道","2017-10-13");最终输入的ret内容是:你好:张三!您的百度知道回答在2017-10-13被采纳了。

C# 提示错误 “常量中有换行符”和“字符文本中的字符太多” ??
常量中有换行符是说你在一个字符串中输入了回车,例如:String str="换 行";在String.Format();中使用@符号可以识别。tring sqlText =String.Format(@"select * from userinformation where name = '{0} ' and password ='{1} '", Request["username"], Request["password"]);

C#中string.Format,什么意思
string.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项。不好理解的举个例子你瞬间就明白了。string str=string.Format("Hello {0}, I'm {1}.", "张三", "李四");执行完这句话后:str的结果就是:Hello 张三,I'm 李四.这样你该明白了吧 ...

c#中 s += (string.Format("{0}*{1}={2}", i, j, i * j)).PadRight(8...
string.Format("{0}*{1}={2}", i, j, i * j)string.Format是格式化字符串,{0}代表字符串后边第一个参数,就是i,{1}第二个,{2}第三个 比如i=2,j=3的话,string.Format("{0}*{1}={2}", i, j, i * j) = "2*3=6"二 PadRight(8)向右补足字符串,比如刚才的字符串"2*3...

c# 输入字符串的格式不正确。FormatException异常
string save = string.Format("UPDATE [Paper] SET [Answer]='{0}' WHERE [loginName]='{1}' AND [Question]='{2}'", answerid, login.userN, int.Parse(id)); 改成这个试试 还有你 int.Parse(id) 确定传入进来的是数值型么 如果是 改成这个就可以了 如果不是 就看下id = ra....

相似回答