在调试时会出现格式不正确

SW1575167988 2012-07-01 11:57:22
我是初学者在做下面的题时出现错误
输入一个小数,然后输出,
//要求小数点后两位小数(原输入的数据小数位数大于2),
//并且输出之后的数据位数和输入时的位数相同。
float a =Convert .ToSingle ( Console.ReadLine());
int i = a.ToString().Length ;
Console.WriteLine("{0,i:00.00}",a);
Console.ReadKey();
在调试时会出现格式不正确,求各位专家指导! 不胜感激
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ParanoidKing 2012-07-01
  • 打赏
  • 举报
回复
Console.WriteLine("{0,i:00.00}",a);这是什么意思?lz想干嘛?
暖枫无敌 2012-07-01
  • 打赏
  • 举报
回复
你输入的是数字不是?小数点是不是全角的小数点??
TraineeFang 2012-07-01
  • 打赏
  • 举报
回复
string s = Console.ReadLine();
double d = double.Parse(s);
int i = d.ToString().Length;
string s2 = "{0," + i + ":F2}";
Console.WriteLine(s2, d);


主要是Console.WriteLine(s2, d);这里,只要两位小数,正常写法是
(Console.WriteLine("{0,10:F2}", d); 但你这里要自己获取输入的小数的长度,来代替这里的长度10,因为这里格式化里面不能放变量,他会把变量当作字符,所以达不到效果。如果要按达到预期效果,就要自己拼接一个格式化占位符字符串。 好了,上面的代码应该就是你想要的效果。如果还有不太清楚的,再联系
QQ:1554675589
希望对你有帮助。
暖枫无敌 2012-07-01
  • 打赏
  • 举报
回复
保留小数多少位的话,使用Math.Round函数



try
{
double a = Convert.ToDouble(Console.ReadLine());
int i = a.ToString().Length;
Console.WriteLine(Math.Round(a,2,MidpointRounding.AwayFromZero));
Console.ReadKey();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
SW1575167988 2012-07-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
我是初学者在做下面的题时出现错误
输入一个小数,然后输出,
//要求小数点后两位小数(原输入的数据小数位数大于2),
//并且输出之后的数据位数和输入时的位数相同。
float a =Convert .ToSingle ( Console.ReadLine());
int i = a.ToString().Length ;
Console.WriteLine("{……
[/Quote]


是的

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧