/* (程序頭部注釋開始)
* 程序的版權和版本聲明部分
* 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)只是把最後一位捨棄了,沒有四捨五入。
網絡上提供的方法有不可行,自己編的有點麻煩。
請各位大俠想想辦法,有沒有現成的函數可用。