我想问一下如何删除小数点后的尾随零吗?
我已经阅读了很多关于它的话题,但是我不清楚它们。您能告诉我一些简单易懂的方法吗?
例如 12.50 到12.5,但实际输出为 12.50
答案 0 :(得分:1)
显而易见的方法是使用Sub ChangeAuthorName()
Dim sWOOXML As String
Dim findAuthor As String
Dim replaceAuthor As String
findAuthor = "w:author=" & Chr(34) & "Cindy Meister" & Chr(34)
replaceAuthor = "w:author=" & Chr(34) & "unknown" & Chr(34)
sWOOXML = ActiveDocument.content.WordOpenXML
sWOOXML = Replace(sWOOXML, findAuthor, replaceAuthor)
ActiveDocument.content.InsertXML sWOOXML
End Sub
,例如:
setprecision(0)
答案 1 :(得分:1)
这是IMHO在C ++中过于复杂的一件事。无论如何,您需要通过在输出流上设置属性来指定所需的格式。为方便起见,定义了许多manipulators。
在这种情况下,您需要设置fixed
表示并将precision
设置为2,以使用相应的操纵器将小数点后的数值四舍五入到小数点后两位,请参见下文(注意{{1} }导致四舍五入到所需的精度)。棘手的部分是删除尾随零。据我所知,C ++不支持此功能,因此您必须进行一些字符串操作。
要执行此操作,我们将首先将值“打印”为字符串,然后在打印该字符串之前对其进行操作:
setprecision
答案 2 :(得分:1)
对于C ++,请检查此How to output float to cout without scientific notation or trailing zeros?
使用printf(),您可以使用以下方法执行此操作,
int main()
{
double value = 12.500;
printf("%.6g", value ); // 12.5 with 6 digit precision
printf("%.6g", 32.1234); // 32.1234
printf("%.6g", 32.12300000); // 32.123
}
答案 3 :(得分:0)
只需使用“ printf”功能。
printf("%.8g",8.230400);
将打印'8.2304'
float value =4.5300;
printf ("%.8g",value);
将返回4.53。
尝试此代码。这很简单。
答案 4 :(得分:0)
我被这个难住了一段时间,不想转换为字符串来完成工作,所以我想出了这个:
new("new")
<块引用>
新值 = 1
答案 5 :(得分:-1)
您可以将值四舍五入为小数点后两位,
x =下限((x * 100)+ 0.5)/ 100;
,然后使用printf打印以截断任何结尾的零。
printf(“%g”,x);
示例:
double x = 25.528;
x = floor((x * 100) + 0.5)/100;
printf("%g", x);
输出:25.53