将双精度数转换为字符串时在小数点前保留零

Posted

技术标签:

【中文标题】将双精度数转换为字符串时在小数点前保留零【英文标题】:Preserve Zeroes Before Decimal When Converting Double to String 【发布时间】:2013-04-02 20:25:33 【问题描述】:

使用 VB6,当我有一个双精度 i = -0.1 时,如果我将其转换为带有 strTemp = Str(i) 的字符串,我会丢失小数点前的前导 0 并最终得到 -.1

【问题讨论】:

vb6.us/tutorials/… 与this question 几乎相同(我不会将其标记为重复,因为这是用于小数) 【参考方案1】:

使用格式化功能。

strtemp = Format(i, "0.####")

0 & # 是占位符。如果不存在其他值(包括前导零和尾随零),0 将在该位置放置一个零。 # 将值放入该位置,但没有前导零或尾随零。

【讨论】:

【参考方案2】:

您也可以使用FormatNumber。在下面的示例中,中间的数字(在本例中为 4)是小数点后所需的位数。有关此功能的更多信息HERE

strTemp = FormatNumber (i,4,vbTrue)

两个函数的输出之间存在一些差异。根据您的要求,您可以使用其中一种。尝试每个函数,以了解哪个函数最适合您的要求。

【讨论】:

以上是关于将双精度数转换为字符串时在小数点前保留零的主要内容,如果未能解决你的问题,请参考以下文章

类型转换

将双精度数舍入到小数点后一位(去掉小数位)

将双精度数舍入到 x 有效数字

在 C++ 中使用 boost::lexical_cast 将双精度转换为字符串?

我想在使用 DecimalFormat 时保留尾随零

如何将双精度值格式化为点后两位小数且分隔符为千位的字符串?