c#的double型精度控制

c#小数精度

c#中对于double型的小数如果想保留一定的精度,即小数点位数,可以在转换成字符串的时候,用参数限制;下面的程序演示了这个做法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace double精度
{
    //计算出一个整型数组的平均值,保留两位小数;
    class Program
    {
        static void Main(string[] args)
        {
            int[] nums = { 1,2,3,4,5,6,9 };
            double avg = nums.Average();
            Console.WriteLine(avg); ;
            Console.WriteLine("{0:0.00}",avg);
            string str = avg.ToString("0.00");
            Console.WriteLine(str); ;
            Console.ReadKey();

        }
    }
}

其实不管是用ToString 还是说标准化输出都是先转换为字符串的。所以Console.WriteLine()在调用ToString的话会把冒号后面的作为参数传入

相当于Console.WriteLine(avg.ToString(0.00));

运行结果

时间: 2024-10-29 10:46:44

c#的double型精度控制的相关文章

C++ double 小数精度控制

第一种方法:cout<<fixed<<setprecision(20)<<mydouble<<endl; #include <iostream> #include <iomanip> using namespace std; int main() { double aDouble = 5.141592694827862736487362746374637434343434; cout<<fixed<<setpr

java控制float和double的精度

在做读取Excel表格数据时,碰到有小数点的数字,用double和float来求和时会多出好多位小数,看起来总觉得怪怪的,怎样控制它的长度呢? DecimalFormat df = new DecimalFormat("########.0"); //四舍五入 value = Double.parseDouble(df.format(value)); 我这里是控制一位小数,如果要求两位,就写成########.00 java控制float和double的精度,布布扣,bubuko.co

文件重定向,getline()获取一样,屏幕输出流,格式控制符dec,oct,hex,精度控制setprecision(int num),设置填充,cout.width和file(字符),进制输入

 1.在window下的命令重定向输出到文件中 2.将内容输入到某个文件中的方式:命令<1.txt (使用1.txt中的命令) 3.读取文件中的名,然后将命令读取最后输出到文件中.命令<1.txt>2.txt   这一句的作用就是将执行的命令输入到2.txt中. 4.文件重定向案例1 #include <iostream> using namespace std; void main() { char str[30] = { 0 }; cin >> str;

double型转换成string型

double型转换成string型 题目描述: 如有一个函数,其可接受一个long double参数,并将参数转换为字符串,结果字符串应保留两位小数,例如,浮点值123.45678应该生成"123.45"这样的字符串.表面上看来 这是一个意义不大的编程问题,然而,如果真要在实际中派上用场,函数应设计为具有一定弹性,以允许调用者指定小数位数.另外,函数也应该能够处理各种异常 情况,如像123.0或123这样的整数. 转换函数接口:string do_fraction(long doubl

double型浮点数能精确到多少位小数?

问题2:double型浮点数能精确到多少位小数?或者,这个问题本身值得商榷? 既然double是浮点数,它的小数点的位置是“浮动”的,所以很难说double类型能精确到小数点后面几位.通常这个关于精度的问题都是通过它能表示的有效数字(十进制)的位数来表示的.遵循IEEE标准的8字节(64位)的double能表示的有效数字的位数是:15 ~ 16 测试一个: #include <stdio.h> int main(){ printf("%.20lf",1.0/3.0); }

Java 浮点数精度控制

1.String.format?(String format,Object… args) Java中用String.format()来控制输出精度, format参数用来设置精度格式, args参数代表待格式化的数字. 返回值是格式化后的字符串. Java API文档中的解释是这样的: 文档不好懂… 没关系 直接上代码! //精确到小数点后两位: public class test { public static void main(String args[]) { //格式控制与C语言类似 S

java定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积

需求如下:(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积. (2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下: public void printAreas(Cirlce c, int times) 在printAreas方法中打印输出1到time之间的每个整数半径值,以及对应的面积.例如,times为5,则输出半径1,2,3,4,5,以及对应的圆面积. 在main方法

C++中string类型对象和double型变量之间的互相转换

//convert string type value to double type value string s = "23"; double d; istringstream is(s); is>>d; cout<<d<<endl;   //输出23 //convert double type value to string type value double d=45; string s; ostringstream os; os<<

java 中double型转化成int型(转)

java 中double型转化成int型 一个变量 double x: //不进行四舍五入操作: (int)x //进行四舍五入操作: Integer.parseInt(new java.text.DecimalFormat("0").format(x))