c# - c# - 带有模式“#.##”的十进制 toString 没有正确格式化为零 (0) 的值
问题描述
下面的代码设置 y = "" 而不是 "0.00"。是否有一种更简洁的方法来对包括 0 在内的所有小数进行转换并正确设置 y 或者是旋转运算符设置变量 z 我的最佳选择?
decimal x = 0;
var y = x.ToString("#.##");
var z = (x == 0) ? "0.00" : x.ToString("#.##");
解决方案
如评论中所述,您应该将 替换#
为0
.
使用“数字占位符”(“#”)时,
...如果输入字符串中的对应数字是非有效数字 0,则结果字符串中不会出现数字。例如,0003 ("####") -> 3。
而“零占位符”(“0”)
如果存在 1,则用相应的数字替换 0;否则,结果字符串中将出现零。
(来自文档的引用)
所以正确的方法是:
var y = x.ToString("0.00");
推荐阅读
- python-3.x - PyQT5 输出控制台到 QTextEdit
- elastic-stack - 在 ELK 上可视化 Jobber 任务(通过 Filebeat)
- pine-script - 如何在Tradingview上的pinescript中的某个时间绘制一条垂直线?
- c++ - windeployqt 不会为调试应用程序部署 qwindowsd.dll
- c# - Powershell -> exe -> powershell 写入主机控制台日志记录失败
- gdb - 在 QEMU 中远程调试 HiFive
- angular - 测试覆盖率未能覆盖书面测试
- android - ProgressBar 未在 FrameLayout WebView 中显示
- c - 在管道块上读取,直到在管道末端运行的程序终止 - Windows
- python - 按钮重叠复选框文本