C#中关于double.ToString()的用法
作者:kingkee 发布时间:2021-12-06 13:12:22
标签:C#,double,ToString
C# double.ToString()的用法
C# 中 double 类型的数据,有时需要格式化显示为字符串(保留N位有效数字或者是保留N位小数),可以使用 double.ToString("参数") 方法。
下面列出几个常用的方法
(F)Fixed point:string str1=temp.ToString("f1"); //保留一位小数 四舍五入 结果:3.1
(F)Fixed point:string str2=temp.ToString("f2"); //保留两位小数,四舍五入 下面一次类推 结果:3.14
(N)Number:string str2=temp.ToString("N"); //保留 结果:3.14
(G)General (default):string str2=temp.ToString("G"); //保留 结果:3.1415926
(P)Percent:string str2=temp.ToString("P"); //保留 结果:314.16%
(E)Scientific:string str2=temp.ToString("E"); //保留 结果E:3.141593E+000
(C)Currency:string str2=temp.ToString("C"); //保留 结果:¥3.14
C# Double 按有效数字 ToString
将double转换为n有效数字的字符
我找了各种帖子包括在微软文档搜索 ‘significant digits’;最接近的是ToString(“Gx”)
但是返回是不大于这个x有效位的字符串, 举例
double a=1.2;
string s=a.ToString("G3");
得到1.2而不是1.20
所以就写了一个函数
string DoubleToStringSignificantDigits(double a, int SignificantDigits)
{
string formaterG = 'G' + SignificantDigits.ToString("N0");
string strResult = a.ToString(formaterG);
int resultLength = SignificantDigits;
if (strResult.IndexOf('-') >= 0) resultLength++;
if (strResult.IndexOf('.') >= 0) resultLength++;
if (Math.Abs(a) < 1) resultLength++; //绝对值小于1,有一个整数0不算有效位
if (strResult.Length < resultLength)
{
if (strResult.IndexOf('.') < 0)
{
strResult += '.';
resultLength++;
}
strResult = strResult.PadRight(resultLength, '0');
}
return (strResult);
}
结果
double[] x = new double[] { 100, 99, 12.12, 1.1234, 1.2, 0.2, 0.12345 , -0.2, -1.2, -123};
转换
DoubleToStringSignificantDigits(x[i], 3)
得到
100
99.0
12.1
1.12
0.200
0.123
-0.200
-1.20
-123
来源:https://blog.csdn.net/kingkee/article/details/100926729


猜你喜欢
- 分类自定义Layout可以分为两种情况。自定义ViewGroup,创造出一些不同于LinearLayout,RelativeLayout等之
- Struct的理论看过好一些,可是工作上基本没有应用过,Class倒处处都有。难道Struct就没有什么使用价值吗?搜了一下如何在类和结构中
- Nacos获取不到配置的值namespace设计真实一个奇特的东西。用spring-cloud-starter-alibaba-nacos-
- 本文实例讲述了java生成随机数的方法。分享给大家供大家参考。具体实现方法如下:package com.tool.code; import
- 本文实例讲述了C#中使用ADOMD.NET查询多维数据集的实现方法,分享给大家供大家参考。具体实现方法分析如下:ADOMD.NET 是用于与
- 在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Di
- 本文实例为大家分享了java实现马踏棋盘的具体代码,供大家参考,具体内容如下马踏棋盘算法介绍8X8棋盘,马走日字,要求每个方格只进入一次,走
- 问题使用前后端分离模式开发项目时,往往会遇到这样一个问题 -- 无法跨域获取服务端数据这是由于浏览器的同源策略导致的,目的是为了安全。在前后
- 说实话,对于xUtils,是我最近才用到的开发框架(也是刚接触),对于其功能不得不说,简化了很多的开发步骤,可以说是非常好的开发
- 下面提供三种计时器的写法供大家参考,大家可以自行选择自己钟爱的使用。写法一(Spring 包提供的计时器):import java.text
- 又是兴趣系列网上有很多自动强红包的例子和代码,笔者也是做了一些优化。先说说自己的两个个优势1.可以在聊天界面自动强不依赖于通知栏推送 2.可
- MainActivity如下: package cn.testnbackpressed; import android.os.Bundle;
- 目录一、环境搭建二、RetryTemplate2.1 RetryTemplate2.2 RetryListener2.3 回退策略2.3.1
- 背景:重做系统后重新配置Android studio 安装虚拟机后无法启动log中显示为启动AVD的进程被杀控制台显示为:在虚拟机列表里没有
- springboot整合jwt步骤:1、登录时,验证账号和密码成功后,生成jwt,返回给前端;2、前端接收后保存,再做其他操作,比如增删改查
- 详解 Java中日期数据类型的处理之格式转换的实例概要:日期以及时间格式处理,在Java中时间格式一般会涉及到的数据类型包括Calendar
- public class BeanDefinitionHolder implements BeanMetadataElement { &nb
- C++ 11中的互斥量,声明在 <mutex> 头文件中,互斥量的使用可以在各种方面,比较常用在对共享数据的
- 分类1.简单工厂模式2.工厂方法模式3.抽象工厂模式案例需求根据蛋糕的不同口味,分别创建苹果味和香蕉味的蛋糕实例方案一:简单工厂模式定义蛋糕
- ThreadLocal是什么ThreadLocal是线程Thread中属性threadLocals即ThreadLocal.ThreadLo