【问题标题】:Print a double with its precision以其精度打印双精度
【发布时间】:2017-03-14 16:26:06
【问题描述】:

我有一个第三方库,可以从实验室秤读取值。这个库连接了许多比例模型,每个模型都有自己的精度。 我需要在我的 C++ 应用程序(使用该库)中做的是从秤(双格式)中读取重量值并打印它,同时考虑到秤的精度(因此给用户,读取该值,信息关于比例精度)。

因此,连接具有 2 位小数精度的秤,输出应为例如:23.45 g 相反,连接具有 4 位小数精度的刻度,输出应为例如:23.4567 g

事实上,我不知道图书馆的比例精度。 该函数如下所示:

double value = scale.Weight();

如果我只是打印双精度值,输出可能是:

1.345999999999999

代替:

1.346

有没有办法理解双精度,以便输出显示带有刻度精度的重量?

编辑:比例精度从 0 到 6 位小数。

【问题讨论】:

  • 啊……您需要从值中获取精度吗?!对不起,我误解了你的问题...
  • @user1810087:正确,对不起我的解释/英文语言。
  • edit 提出您的问题,以便更清楚地说明您真正需要做什么 - 就目前而言,这并不明显。
  • @PaulR:我担心如果编辑会增加更多的混乱...... :-) 你能帮我编辑一下吗?
  • 不可能从双精度数中获得精度(即使是人工),您如何确保1.345999999999999 不是 15 精度?您使用的库应该为您提供此类信息。

标签: c++ double precision


【解决方案1】:

没有。此信息应在 scale 类中,因为 double 类型具有“固定”精度,您无法更改它。打字精度和印刷精度也是两个不同的东西。您可以使用具有无限精度的类型,但在点等之后始终显示 2 位数字。如果 scale 没有精度信息,您可以在其中创建一个辅助类和硬编码精度,然后将其与一些 scale 属性或类型相关联。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2011-02-14
    • 2016-04-30
    相关资源
    最近更新 更多