以精确度

时间:2017-03-14 16:26:07

标签: c++ double precision

我有一个第三方图书馆,可以读取实验室规模的数据。这个库接口有很多比例模型,每个模型都有自己的精度。 我需要在我的C ++应用程序(使用该库)中执行的操作是从比例(双格式)读取权重值并打印它,同时考虑到比例精度(因此给予用户,读取该值,信息关于比例精度)。

因此,连接一个精度为2位小数的刻度,输出应为:23.45 g 相反,连接一个精度为4位小数的刻度,输出应该是例如:23.4567 g

事实上我从图书馆不知道比例精度。 该功能如下所示:

double value = scale.Weight();

如果我只打印double值,输出可以是:

1.345999999999999

而不是:

1.346

有没有办法理解双精度,以便输出显示具有比例精度的权重?

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

1 个答案:

答案 0 :(得分:1)

没有。此信息应位于scale类内,因为double类型具有“固定”精度,您无法更改它。类型精度和印刷精度也是两回事。您可以使用具有无限精度但在点后始终显示2位数的类型等。如果scale没有精度信息,您可以在其中执行辅助类和硬编码精度,然后将其与某些scale相关联财产或类型。