当前位置: 首页 > news >正文

GLOG如何控制输出的小数点位数

1 问题

在小白的蹩脚翻译演绎型博文《GLOG从入门到入门》中,有位热心读者提问说:在保存日志时,浮点型变量的小数位数如何设置?

首先感谢这位“嘻嘻哈哈的地球人”赏光阅读了小白这不太通顺的博客文章,并提出了一个很好的问题。

其实小白很早前就看到了这个问题,无奈小白也是一个初级程序员,而且每天的工作不能很好地完成,经常疲于奔命地应对领导的检查。所以一眼看过去不知道怎么回答这个问题,也就一直搁置在那里,没有回答。

最近又开始捯饬GLOG了,所以有了一些新的研究和分享。在此特别致以歉意并特意回复(迟到的回复)这位“嘻嘻哈哈的地球人”:这个问题至少现在小白有解了。

2 示例代码

Talk is cheap. Show me the code. 二话不说,先上代码。

#define GLOG_NO_ABBREVIATED_SEVERITIES
#include "glog/logging.h"
#include <iostream>
#include <iomanip>
#define WRITE_LOG(s) (LOG(INFO)<<s)int main(int argc, char* argv[])
{FLAGS_log_dir = "../Log/";if (!google::IsGoogleLoggingInitialized()){google::InitGoogleLogging("Alg_Log");}double pi = 3.141592653;// Method1: C语言风格的小数点控制char testInfo[128];sprintf_s(testInfo, "pi = %.3lf", pi);WRITE_LOG(testInfo);google::FlushLogFiles(google::GLOG_INFO);// Method2: C++语言风格的输出流小数点控制LOG(INFO) << std::fixed << std::setprecision(3) << "pi = " << pi;google::FlushLogFiles(google::GLOG_INFO);LOG(INFO) << std::fixed << std::setprecision(6) << "pi = " << pi;google::FlushLogFiles(google::GLOG_INFO);LOG(INFO) << std::fixed << std::setprecision(9) << "pi = " << pi;google::FlushLogFiles(google::GLOG_INFO);if (google::IsGoogleLoggingInitialized()){google::ShutdownGoogleLogging();}return 0;
}

在此例中,小白给出了一个初始的double类型的数,即圆周率π\piπ,小白数学非常一般,只记到小数点后第9位。演示这个案例应该足够了。

以上代码的输出为:

Log file created at: 2023/02/22 21:15:19
Running on machine: DESKTOP-GC26HHT
Running duration (h:mm:ss): 0:00:00
Log line format: [IWEF]yyyymmdd hh:mm:ss.uuuuuu threadid file:line] msg
I20230222 21:15:19.565553 16452 testGlog.cpp:22] pi = 3.142
I20230222 21:15:19.569572 16452 testGlog.cpp:27] pi = 3.142
I20230222 21:15:19.569572 16452 testGlog.cpp:30] pi = 3.141593
I20230222 21:15:19.569572 16452 testGlog.cpp:33] pi = 3.141592653

接下来解释一下两种方式的小数点控制方案:

  • C语言风格的格式化输出方案,也即使用sprintf_s()函数,将double类型(float类型也一样)的数据格式化打印成字符串,这里控制小数点的方式应该不需要小白多说;
  • C++语言风格的输出流小数点控制方案,也即在头文件中包含有<iostram><iomanip>,然后通过fixedsetprecision()的流控制方式来控制输出字符串,小白想到这种控制方案的启示,主要来自GLOG的写入流写法,即LOG(INFO)<<s,虽然小白没有去验证过GLOG底层的实现方式,但是猜想这种文件流或输出流的控制方式应该和C++的流输出方式是一致的。

各位热心的读者,如果你有更好的实现方式或建议,都可以打在评论区里。
在这里插入图片描述

相关文章:

GLOG如何控制输出的小数点位数

1 问题 在小白的蹩脚翻译演绎型博文《GLOG从入门到入门》中&#xff0c;有位热心读者提问说&#xff1a;在保存日志时&#xff0c;浮点型变量的小数位数如何设置&#xff1f; 首先感谢这位“嘻嘻哈哈的地球人”赏光阅读了小白这不太通顺的博客文章&#xff0c;并提出了一个很…...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A(6)

目录 模块A 基础设施设置与安全加固 一、项目和任务描述&#xff1a; 二、服务器环境说明 三、具体任务&#xff08;每个任务得分以电子答题卡为准&#xff09; A-1任务一&#xff1a;登录安全加固&#xff08;Windows&#xff09; 1.密码策略 a.密码策略必须同时满足大小…...

Safety-Gym环境配置与安

官网&#xff1a; https://github.com/openai/safety-gym https://github.com/openai/safety-starter-agents 一、安装依赖环境配置 建议使用python 3.7及以下环境&#xff0c;因为官方的safety-rl是基于tensorflow1.13.1实现&#xff0c;而tensorflow1.13.1只能支持python…...

3月再不跳槽,就晚了

从时间节点上来看&#xff0c;3月、4月是每年跳槽的黄金季&#xff01; 以 BAT 为代表的互联网大厂&#xff0c;无论是薪资待遇、还是平台和福利&#xff0c;都一直是求职者眼中的香饽饽&#xff0c;“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里&a…...

HTTP cookie格式与约束

cookie是前端编程当中经常要使用到的概念&#xff0c;我们可以使用cookie利用浏览器来存放用户的状态信息保存用户做了一些什么事情。session是服务器端维护的状态。session又是如何和cookie关联起来。后面介绍cookie和session的使用。Cookie 是什么&#xff1f;RFC6265, HTTP …...

docker基础

docker基础 docker概述 docker的出现&#xff1f;docker解决思想docker历史docker链接docker能干什么&#xff1f;开发-运维 docker安装 镜像(image)容器(container)仓库(repository)底层原理 docker命令 帮助命令镜像命令 docker-images查看所有本地主机上的镜像docker-searc…...

【微信小程序】--JSON 配置文件作用(三)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#…...

EDA-课设

EDA-课程设计-电子闹钟 一、实验目的 1.掌握多层电路在 QuartusII 集成开发环境中的实现&#xff1b; 2.熟练掌握基于 QuartusII 集成开发环境的组合逻辑电路设计流程&#xff1b; 3.掌握基于 QuartusII 集成开发环境的时序逻辑电路设计流程&#xff1b; 4.理解有限状态机设计…...

C/C++每日一练(20230222)

目录 1. 部分复制字符串(★) 2. 按字典顺序排列问题(★★) 3. 地下城游戏(★★★) 附录 动态规划 1. 部分复制字符串 将字符串2小写字母复制到字符串1&#xff1a;编写程序,输入字符串s2,将其中所有小写字母复制到字符串数组strl中。例如&#xff1a;aal1bb22cc33de4AA55…...

Java API 文档搜索引擎

1. 认识搜索引擎:在搜狗搜索的搜索结果页中, 包含了若干条结果, 每一个结果包含了图标, 标题, 描述, 展示URL等搜索引擎的本质:输入一个查询词, 得到若干个搜索结果, 每个搜索结果包含了标题, 描述, 展示URL和点击URL2. 搜索引擎思路:2.1 搜索的核心思路:当前我们有很多的网页(…...

2023美赛C题Wordle二三问分布预测和难度分类预测

文章目录前言题目介绍人数分布预测首先建立字母词典&#xff0c;加上时间特征数据预处理训练和预测函数保存模型函数位置编码模型及其参数设置模型训练以及训练曲线可视化预测人数分布难度分类预测总结前言 2023美赛选了C题&#xff0c;应该很多人会选&#xff0c;一看就好做&…...

gdb的简单练习

题目来自《ctf安全竞赛入门》1.用vim写代码vim gdb.c#include "stdio.h" #include "stdlib.h" void main() {int i 100;int j 101;if (i j){printf("bingooooooooo.");system("/bin/sh");}elseprintf("error............&quo…...

如何使用python AI快速比对两张人脸图像?

本篇文章的代码块的实现主要是为了能够快速的通过python第三方非标准库对比出两张人脸是否一样。 实现过程比较简单&#xff0c;但是第三方python依赖的安装过程较为曲折&#xff0c;下面是通过实践对比总结出来的能够支持的几个版本&#xff0c;避免大家踩坑。 python版本&a…...

(2)C#传智:变量基础(第二天)

一、注释符 不写注释是流氓&#xff0c;名字瞎起是扯蛋。 注释作用&#xff1a;解释与注销 命名&#xff1a; 以字母、_、开头&#xff0c;里面只能有_与特殊符&#xff0c;其它不得出现如%*&^等。 不能与关键字重复。区分大小写&#xff0c;Num…...

02-mysql高级-

文章目录mysql高级1&#xff0c;约束1.1 概念1.2 分类1.3 非空约束1.4 唯一约束1.5 主键约束1.6 默认约束1.7 约束练习1.8 外键约束1.8.1 概述1.8.2 语法1.8.3 练习2&#xff0c;数据库设计2.1 数据库设计简介2.2 表关系(一对多)mysql高级 今日目标 掌握约束的使用 掌握表关系…...

windows 使用everything 查看文件(夹)存储空间占用

起因 总是那个原因,C: D: E:全都红了,下的游戏太多了,然后就这样了,之前也有过不少这种情况.几年前,就在智能手机上见过类似的功能. 大概就是遍历文件系统,统计每个文件的大小,然后父节点记录所有子节点的和,然后可以显示占用百分比之类的. 经过 在windows 上我最开始使用ex…...

2023该好好赚钱了,推荐三个下班就能做的副业

在过去的两年里&#xff0c;越来越多的同事选择辞职创业。许多人通过互联网红利赚到了他们的第一桶金。随着短视频的兴起&#xff0c;越来越多的人吹嘘自己年收入百万&#xff0c;导致很多刚进入职场的年轻人逐渐迷失自我&#xff0c;认为钱特别容易赚。但事实上&#xff0c;80…...

vue3如何进行数据监听watch/watchEffect

我们都知道监听器的作用是在每次响应式状态发生变化时触发&#xff0c;在组合式 API 中&#xff0c;我们可以使用 watch()函数和watchEffect()函数, 当你更改了响应式状态&#xff0c;它可能会同时触发 Vue 组件更新和侦听器回调。 默认情况下&#xff0c;用户创建的侦听器回…...

Wgcloud安装和使用(性能监控)

一、Wgcloud说明 官网&#xff1a;https://www.wgstart.com/ WGCLOUD支持主机各种指标监测&#xff08;cpu使用率&#xff0c;cpu温度&#xff0c;内存使用率&#xff0c;磁盘容量&#xff0c;磁盘IO&#xff0c;硬盘SMART健康状态&#xff0c;系统负载&#xff0c;连接数量&…...

前端如何实现本地图片上传?

前端如何实现本地图片上传&#xff1f; 摘要 对于学习前端的小伙伴都有一个困惑&#xff0c;就是平常想上手小项目&#xff0c;但碍于不想购买服务器&#xff0c;实践受到了限制。 一般我选择node.js搭建服务器&#xff0c;毕竟基于JavaScript语言&#xff0c;简直不是一家人…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...