You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中double.ToString("#.##")方法无法输出零值的解决办法

解决Double转两位小数字符串时0.0输出空的问题

你遇到的问题是因为格式字符串#.##中的#是可选数字占位符,只会显示存在的有效数字,当值为0.0时,整数和小数部分都没有有效数字,所以返回空字符串。以下是两种常用解决方案:

1. 强制显示两位小数(包括0.0)

使用"0.00"格式字符串,0是强制占位符,会确保整数部分至少显示一个0,小数部分固定显示两位(不足补0,超出则四舍五入):

double x = 0.0;
MessageBox.Show(x.ToString("0.00")); // 输出 "0.00"

double y = 1.2;
MessageBox.Show(y.ToString("0.00")); // 输出 "1.20"

double z = 3.456;
MessageBox.Show(z.ToString("0.00")); // 输出 "3.46"

2. 非零值保留原格式,零值特殊处理

如果希望非零值保持#.##的行为(比如1显示"1"、1.2显示"1.2"),仅对0.0做特殊显示,可以添加条件判断。注意要处理double的精度问题,避免因浮点误差误判:

double x = 0.0;
// 判断是否为接近0的数值,避免浮点精度问题
string result = Math.Abs(x) < 1e-9 ? "0.00" : x.ToString("#.##");
MessageBox.Show(result);

// 若希望0显示为"0"而非"0.00",可修改为:
// string result = Math.Abs(x) < 1e-9 ? "0" : x.ToString("#.##");

内容的提问来源于stack exchange,提问作者Mich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:27:10