C#--第2周实验--任务三--编写一个控制台应用--输入x计算并输出分段函数F(x)的值
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:编写一个控制台应用--输入x计算并输出分段函数F(x)的值
* 作 者: 雷恒鑫
* 完成日期: 2012 年 09 月08 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
[csharp]
<span style="font-size:24px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication_read_string
{
class Program
{
static void Main(string[] args)
{
double d;//如果不加double
char c='a';//循环控制变量
Console.Write("请输入一个数:");
string s = Console.ReadLine();
double x = double.Parse(s);
while (!c.Equals('e')) //当字符c等于e时结束循环
{
if (x != 0)
{
d = 1 / x;//如果加double
}
else
{
d = 0; //如果不加double ,提示当前上下文中不存在名称“d”;
}
//double d1 = double.Parse(d.ToString("1F"));
//string d1 = Convert.ToDecimal("d").ToString("0.00");
//string bb = d.ToString().Substring(0, d.ToString().LastIndexOf(". ") + 3);
//string bb = d.ToString().Substring(0, d.ToString().LastIndexOf(". ") + 3 < d.() ? d.Length : d.ToString().LastIndexOf(". ") + 3);
Console.WriteLine("\r\n不四舍五入,分段函数f(x)的值是:{0}", Math.Round(d, 1));
//Console.WriteLine("\r\n四舍五入,分段函数f(x)的值是:{0}",d1);
Console.Write("还想继续运算吗?按“e”结束运算,按其他键继续运算!");
c = Console.ReadKey().KeyChar;
Console.WriteLine();
if(c.Equals('e'))
{
break;
}
else
{
Console.Write("请输入一个数:");
s = Console.ReadLine();
x = double.Parse(s);
}
}
Console.ReadKey(false);
}
}
}
</span>
运行结果:
经验积累:
1.把字符强制转换成double型以下两种方法都可以。
[csharp]
<span style="font-size:24px;"> x = Convert.ToDouble(s);
x = double.Parse(s);</span>
问题:
1.“C#中用哪个函数保留两位小数?”
Math.Round(d, 1)只是把最后一位舍弃了,没有四舍五入。
网络上提供的方法有不可行,自己编的有点麻烦。
请各位大侠想想办法,有没有现成的函数可用。
补充:软件开发 , C# ,