如何“计算”双精度值的正确小数位数?

2023-11-21

我需要帮助来保持精度double。如果我将文字分配给双精度数,则实际值会被截断。

int main() {
    double x = 7.40200133400;
    std::cout << x << "\n";
}

对于上面的代码片段,输出是7.402
有没有办法防止这种类型的截断?或者有没有办法准确计算一个浮点有多少个double?例如,number_of_decimal(x)会给出 11,因为输入在运行时未知,所以我不能使用setprecision().


我想我应该将我的问题改为: 如何在不截断浮点数的情况下将双精度型转换为字符串。 IE。

#include <iostream>
#include <string>
#include <sstream>

template<typename T>
std::string type_to_string( T data ) {
    std::ostringstream o;
    o << data;
    return o.str();
}

int main() {
    double x = 7.40200;
    std::cout << type_to_string( x ) << "\n";
}

预期输出应为 7.40200,但实际结果为 7.402。那么我该如何解决这个问题呢?任何想法?


由于事实上float and double内部以二进制形式存储,即文字7.40200133400实际上代表数字 7.40200133400000037653398976544849574565887451171875

...那么您真正想要多少精度? :-)

#include <iomanip>    
int main()
{
    double x = 7.40200133400;
    std::cout << std::setprecision(51) << x << "\n";
}

是的,这个程序确实打印了 7.40200133400000037653398976544849574565887451171875!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何“计算”双精度值的正确小数位数? 的相关文章

  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲
  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • std::fstream 缓冲与手动缓冲(为什么手动缓冲有 10 倍增益)?

    我测试了两种写入配置 Fstream缓冲 Initialization const unsigned int length 8192 char buffer length std ofstream stream stream rdbuf g
  • 使用 php 以人类可读的格式从数据库表中打印餐厅营业时间

    我有一张表格 上面列出了餐馆的营业时间 这些列是 id eateries id day of week start time 和 end time 每个餐馆在表中都会出现多次 因为每天都有一个单独的条目 有关更多详细信息 请参阅上一个问题
  • Math.random() 什么时候开始重复?

    我在 nodejs 中进行了这个简单的测试 我让它运行了一整夜 并且无法让 Math random 重复 我意识到这些值 甚至整个序列 迟早会重复 但是对于何时发生有合理的预期吗 let v for let i 0 i let r Math
  • .net PDF 查看器控件[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我们正在寻找适用于 WPF
  • 如何将 spring bean 注入(custructor)到 Mapstruct 的抽象映射器中?

    我有下面的映射器类 我想在其中使用CounterService 我正在尝试构造函数注入 但这不起作用并且null正在打印 Mapper componentModel spring uses CounterService class inje
  • 接口中的条件必需属性

    我想输入一个可以包含任何属性的对象 但如果它具有任何属性a b or c 它必须包含所有属性a b and c 换句话说 对象可以包含任何属性 但如果它包含a b or c它必须包含a b and c let something Somet
  • 如何修复 ValueError:不支持多类格式[重复]

    这个问题在这里已经有答案了 这是我的代码 我尝试计算 ROC 分数 但我遇到 ValueError 问题 不支持多类格式 我已经在寻找 sci kit learn 但它没有帮助 最后 我仍然有 ValueError 不支持多类格式 这是我的
  • OnTouchListener 和 OnClickListener 的区别

    我制作了一个应用程序 它实现了View OnTouchListener 但是当我将其上传到 Android Market Google Play 商店 时 我收到以下消息 此 apk 请求 1 个将用于 Android Market 的功能
  • 代码分割“import”破坏了 Jest 测试

    我正在使用 webpack 的代码分割功能 但 jest 似乎无法识别import 功能 import myModule then function myModule SyntaxError Unexpected token import
  • 在 Java 中,公开对象的成员是否是一个坏主意?

    我的应用程序中有一个数据类 我的应用程序永远不会用作公共 API 并且我将是我的项目中唯一开发代码的人 我正在努力节省每一盎司的处理器和内存电量 让我的数据类中的数据成员具有公共 受保护 默认保护以便我不必使用 getter 是一个坏主意吗
  • cocos2d iphone 5 4寸显示屏支持

    我一直在到处寻找这个 但没有运气 如何为 iPhone 5 的 4 英寸显示屏准备基于 cocos2d 的游戏 我的应用程序正在运行 但我想增强它以适应更大的 4 英寸显示屏 Cocos2d 使用自己的后缀来表示视网膜显示图像 对于 iPh
  • Numpy 多维度花式索引

    假设我有一个大小为 n x m x k 的 numpy 数组 A 和另一个大小为 n x m 的数组 B 其索引从 1 到 k 我想使用 B 中这个位置给出的索引来访问 A 的每个 n x m 切片 给我一个大小为 n x m 的数组 编辑
  • 当过滤范围为空时处理“未找到单元格”错误

    我对一个范围进行一些过滤 然后复制过滤后的范围 myRange SpecialCells xlCellTypeVisible Copy 一旦过滤器过滤掉我得到的所有案例 错误1004 未找到单元格 我正在寻找一种方法来检查 没有On Err
  • 如何创建表达式树来表示 C# 中的“String.Contains("term")”?

    我刚刚开始使用表达式树 所以我希望这是有道理的 我正在尝试创建一个表达式树来表示 t gt t SomeProperty Contains stringValue 到目前为止我已经得到 private static Expression L
  • Scala 下划线 - 错误:缺少扩展函数的参数类型

    我知道对此有很多问题 但我创建了一个简单的例子 我认为应该可以工作 但仍然不行 我不确定我明白为什么 val myStrings new Array String 3 do some string initialization this w
  • Django 1.2:如何将 pre_save 信号连接到类方法

    我试图在 django 1 2 项目的某些类中定义 before save 方法 我在将信号连接到 models py 中的类方法时遇到问题 class MyClass models Model def before save self s
  • Symfony:电子邮件地址作为请求参数

    我在将 url 中的电子邮件地址传递到 symfony 应用程序时遇到一些问题 网址看起来像 example com unsubscribe email email protected 它总是会导致一个sfError404Exception
  • CookieAuthenticationOptions.LogoutPath 属性在 ASP.NET Core 2.1 中有何作用?

    在 ASP NET Core 2 1 中 谁能解释一下CookieAuthenticationOptions LogoutPath做 每文档它说 如果为处理程序提供了 LogoutPath 则对该路径的请求将根据 ReturnUrlPara
  • 如何用 CSS 替换文本?

    如何使用如下方法用 CSS 替换文本 pvw title img src IKON img visibility hidden 代替 img src IKON img 我需要使用可以替换文本的东西 我必须使用 让它发挥作用 div clas
  • 如何“计算”双精度值的正确小数位数?

    我需要帮助来保持精度double 如果我将文字分配给双精度数 则实际值会被截断 int main double x 7 40200133400 std cout lt lt x lt lt n 对于上面的代码片段 输出是7 402有没有办法