首页 > 解决方案 > 将双精度 0,10 转换为字符串并在最后一位数字后保留 0 或按原样将双精度转换为字符串

问题描述

我正在努力将双精度转换为字符串。数字包含 0,一旦您评估变量就会消失。我已经尝试过 tostring('##.00') 但它不适用于所有情况。例如,如果 value 只有两位数被 . tostring('##.00') 方法将在末尾添加额外的 0。请参阅下面的示例

$d = (1.1).ToString('##.00') # Results in 1.10

$d = (1.10).ToString('##.00') # Results in 1.10

请告知如何将双精度转换为保留所有数字的字符串,包括 0(如果存在)。

标签: c#powershell

解决方案


正如@Marc Gravell 上面所说,掩码##.00 强制在小数点分隔符后显示2 位数字。如果您不想在结果字符串中添加无关紧要的零,请尝试使用 ##.## 作为掩码:

PS L:\> echo (1.1).ToString('##.##') 
1,1
PS L:\> echo (1.10).ToString('##.##') 
1,1

最后一个例子是由上面的 Jeroen 解释的 - 数字 1.1 和 1.10 是相等的,所以如果你想区分它们(出于任何非数学原因) - 那么你需要定义明确的规则/案例 1.1 不应该等于 1.10 .


推荐阅读