解析C++ 浮点数的格式化显示
#include <stdlib.h>
#include <string>
#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <limits>
#include <sstream>
using namespace std;
string do_fraction(long double val, int decplaces=3)
{
ostringstream out;
char DECIMAL_POINT='.'; // 欧洲用法为','
int prec=numeric_limits<long double>::digits10; // 18
out.precision(prec);//覆盖默认精度
out<<val;
string str= out.str(); //从流中取出字符串
size_t n=str.find(DECIMAL_POINT);
if ((n!=string::npos) //有小数点吗?
&& (str.size()> n+decplaces)) //后面至少还有decplaces位吗?
{
str[n+decplaces]='\0';//覆盖第一个多余的数
}
str.swap(string(str.c_str()));//删除nul之后的多余字符
return str;
}
相关推荐
-
深入C++浮点数无效值定义与判定的解决办法
在实际计算中可能会出现浮点型的无效数据,格式化输出到文件中内容为1.79769e+308,输出到界面就是很大一串数据.这两种方式无论哪种在阅读和查找时就不是很方便.无效值定义如下:#define InvalidDouble *(double*)("\xff\xff\xff\xff\xff\xff\xef\x7f")double price;.........(计算步骤省掉)price=GetPrice(); //获取数据 通过下面方式对浮点型的数据进行判定(price==Invali
-
C语言菜鸟基础教程之单精度浮点数与双精度浮点数
上节课 简单介绍了浮点数.计算机程序中的浮点数分为单精度浮点数和双精度浮点数. 单精度和双精度精确的范围不一样. 计算机里的最基本的存储单位用位(bit)来表示.bit只能用来存储0或1. 稍大一点的单位是字节(Byte,简写为B). 再大一级的是千字节(kilo Bytes),用k来表示. 再大一级的单位是兆字节(Mega Bytes),用M来表示.一张照片的大小通常为1~3M. 再大一级的单位为G.一部高清电影的大小通常为1~2G. 再大一级的单位为T. 换算关系为: 1B = 8bit 1
-
深入C/C++浮点数在内存中的存储方式详解
任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100.则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式.但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是采用IEEE所制定的标准浮点格式,即二进制科学表示法.在二进制科学表示法中,S=M*2^N 主要由三部分构成:符号位+阶码(N)+尾数(M).对于flo
-
解析C++浮点数无效值的定义与无效值判定的小结
在实际计算中可能会出现浮点型的无效数据,格式化输出到文件中内容为1.79769e+308,输出到界面就是很大一串数据.这两种方式无论哪种在阅读和查找时就不是很方便.在开发中遇见浮点型数据无效值得判定. 无效值定义如下:#define InvalidDouble *(double*)("\xff\xff\xff\xff\xff\xff\xef\x7f")double price;.........(计算步骤省掉)price=GetPrice(); //获取数据 通过下面方式对浮点型的无
-
解析C++ 浮点数的格式化输出
C++格式化输出浮点数 复制代码 代码如下: #include <iostream>using std::cout;using std::endl;using std::fixed;using std::scientific;int main(){ double x = 0.001234567; double y = 1.946e9; cout << "Displayed in default format:" << endl <&
-
基于C++浮点数(float、double)类型数据比较与转换的详解
浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数.具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法.所以浮点数在运算过程中通常伴随着因为无法精确表示而进行的近似或舍入.但是这种设计的好处是可以在固定的长度上存储更大范围的数.1.将字符串转换为float.double过程存在精度损失,只是float.double各自损失的精度不相同而已std::string str="8.2&
-
解析C++ 浮点数的格式化显示
代码如下所示: 复制代码 代码如下: #include <stdlib.h> #include <string> #include <windows.h> #include <stdio.h> #include <iostream> #include <limits> #include <sstream> using namespace std; str
-
C#中DateTime日期类型格式化显示方法汇总
本文汇总了常用的DateTime日期类型格式化显示方法,方便读者在使用的时候参考借鉴一下.具体如下所示: 1.绑定时格式化日期方法: <ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " > <ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE > </ASP:BOUNDCOLUMN
-
C语言 strftime 格式化显示日期时间的实现
C/C++程序中需要程序显示当前时间,可以使用标准函数strftime. 函数原型:size_t strftime (char* ptr, size_t maxsize, const char* format,const struct tm* timeptr ); 代码示例: #include <stdio.h> #include <time.h> int main () { time_t rawtime; struct tm * timeinfo; char buffer [12
-
PHP实现浏览器格式化显示XML的方法示例
本文实例讲述了PHP实现浏览器格式化显示XML的方法.分享给大家供大家参考,具体如下: 在头部加上 header("Content-type: application/xml"); 刚开始加上了发现还是不行.最近一直尝试最后终于找到解决办法.在代码最后加上exit;就可以了 $Dom = new \DOMDocument('1.0', 'utf-8'); $paper = $Dom->createElement('paper'); $Dom->appendChild($pa
-
PHP格式化显示时间date()函数案例讲解
date("yyyyMMdd",time()) date() 函数 功能:用于格式化时间,返回一个字符串. 语法:string date( string format [, int timestamp] ),其中参数 format 表示时间格式化的方式:可选参数timestamp表示时间戳,默认为time(),即当前时间. 格式化方式 说明 Y 4位数字年,y为2位数字,如99即1999年 m 数字月份,前面有前导0,如01.n 为无前导0数字月份 F 月份,完整的文本格式,例如
-
python 实现仿微信聊天时间格式化显示的代码
时间格式化所使用的算法为: """ 1.如果不在同一年 '%Y年%m月%d日' 2.如果在同一年 2.1 如果在同一个月 2.1.1 如果在同一天 '%H:%M' 2.1.2 如果是昨天 '昨天 %H:%M' 2.1.2 如果在同一周 '周x 00:00' 去除周日 的情况 2.2 否则 '%m月%d日 %H:%M' """ 具体的python代码如下: def fmtdt_str(dtstr, fmt): result = "&quo
-
浅析C语言字中的符串格式化显示
符号 作用 ────────────────────────── %d 十进制有符号整数 %i 输入整数 ,可以是带前导0的八进制数或0x的十六进制数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针
-
php时间戳格式化显示友好的时间函数分享
在项目中时间一律显示为2014-10-20 10:22显得很呆板.在微博.QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时间,我们称之为友好的时间格式.那么用php怎么实现呢? 大体思路如下: 如果是跨年并且大于3天就显示为具体的时间 如果是今天的 如果是一分钟内则显示几秒之前 如果是一小时内则显示几分钟前 如果是当天且大于一小时则显示为几小时前 如果是昨天则显示为昨天几点 如果是前天则显示为前天几点 如果大于三天(没
随机推荐
- CI映射(加载)数据到view层的方法
- 数据库正规化和设计技巧
- PHP+FLASH实现上传文件进度条相关文件 下载
- iOS实现手势解锁操作
- Android开发之在程序中时时获取logcat日志信息的方法(附demo源码下载)
- js实现瀑布流的三种方式比较
- 过滤掉PHP数组中的重复值的实现代码
- 详解Vue 动态添加模板的几种方法
- Python实现的Google IP 可用性检测脚本
- 比较详细的XMLDOM对象方法详解第1/2页
- SQL 按特定字段值排序
- jQuery textarea的长度进行验证
- js实现兼容IE6与IE7的DIV高度
- 重启无响应的IIS服务的方法
- Spring Boot修改启动端口的方法
- 详解Android中的Service
- PHP中执行MYSQL事务解决数据写入不完整等情况
- Linux线程同步之信号C语言实例
- Android开发笔记之:Dialog的使用详解
- vue-prop父组件向子组件进行传值的方法