ZetCode

PowerShell Double 类型

最后修改:2025 年 2 月 15 日

本教程介绍了 PowerShell 的 double 类型,这是一种用于十进制计算的 64 位浮点数字数据类型。Double 类型在处理大值范围的同时,为科学和金融运算提供精度。

double 类型 (System.Double) 以 IEEE 754 格式存储带小数点的数字。PowerShell 会自动将带小数点的数字解释为 double,但显式类型声明可确保脚本中数据的一致性。

声明 Double 变量

PowerShell 根据值推断数字类型。赋值小数点即可自动创建 double。

basic_double.ps1
$pi = 3.1415926535
[double]$gravity = 9.80665

Write-Output "Pi: $pi"
Write-Output "Gravity: $gravity"

此脚本演示了隐式和显式 double 声明。两个变量都存储 64 位浮点值。

$pi = 3.1415926535

使用小数点值时,PowerShell 会自动分配 double 类型。

[double]$gravity = 9.80665

显式类型声明可确保即使稍后赋整数值,变量仍保持 double 类型。

算术运算

Double 支持标准算术运算。在复杂计算中请注意精度限制。

operations.ps1
$radius = 5.5
$area = [math]::PI * ($radius * $radius)
Write-Output "Circle area: $area"

此代码使用 Math.PI 常量计算圆的面积。请注意结果的精度可达 15 位小数。

精度注意事项

Double 精度可能导致敏感计算中出现舍入错误。

precision.ps1
$sum = 0.1 + 0.2
$comparison = $sum -eq 0.3
Write-Output "0.1 + 0.2 equals 0.3? $comparison"

由于二进制表示,此比较返回 False。在金融计算中使用 decimal 类型以获得精确精度。

类型转换

使用类型转换或解析在数字类型之间进行转换。

conversion.ps1
$stringValue = "123.45"
$doubleFromString = [double]::Parse($stringValue)
$intToDouble = [double]42

Write-Output "Parsed: $doubleFromString"
Write-Output "Integer to double: $intToDouble"

此代码演示了从字符串和整数类型安全转换为 double。

格式化 Double 输出

使用格式字符串控制小数点显示。

formatting.ps1
$temperature = 23.56789
Write-Output ("Formatted: {0:N2}°C" -f $temperature)
Write-Output ("Scientific: {0:E3}" -f $temperature)

format 运算符 (-f) 可指定小数点位数和科学计数法。

来源

Microsoft Double 类型文档

本教程介绍了 PowerShell 中 essential double 类型的操作。对于对精度要求很高的应用程序,请考虑使用 decimal 类型。请务必彻底测试浮点逻辑。

作者

Jan Bodnar 是一位软件开发人员和技术作家,在系统编程和脚本语言方面拥有丰富的经验。他是多本编程书籍的作者,也是 ZetCode 教程平台的维护者。

列出 所有 PowerShell 教程