【发布时间】:2026-02-06 16:45:01
【问题描述】:
我需要根据某些条件将 Double 转换为 String:
- 我不想要一个四舍五入的值
- 逗号后只有 3 位数字
- + 或 - 符号和开头。
- (如果 double 值为 0,则额外:0.000)(不是最重要的)
所以,如果我的 Double 值为 0.257894214,我希望字符串为:+0.257。
我测试了几行代码:
Double num = 0.257894214;
Double num2 = -0.257894214;
Double num3 = 0;
num.ToString("R") // 0,257894214
num2.ToString("R") // -0,257894214
num3.ToString("R") // 0
String.Format("{0:0.000}",num) // 0,258
String.Format("{0:0.000}",num2) // -0,258
String.Format("{0:0.000}",num3) // 0,000
num.ToString("0.000") // 0,258
num2.ToString("0.000") // -0,258
num3.ToString("0.000") // 0,000
num.ToString("+0.000;-0.000;0.000") // +0,258
num2.ToString("+0.000;-0.000;0.000") // -0,258
num3.ToString("+0.000;-0.000;0.000") // 0,000
String.Format("{0:+0.000;-0.000;0.000}",num) // +0,258
String.Format("{0:+0.000;-0.000;0.000}",num2) // -0,258
String.Format("{0:+0.000;-0.000;0.000}",num3) // 0,000
我感觉接近解决方案,但我现在完全迷失了!
最后几行真的很接近我正在搜索的内容......但是 Double 值是四舍五入的...... :(
我希望我已经清楚了。 :) 提前致谢。
再见!
【问题讨论】:
-
如果 quick&dirty 足够好:格式化 4 个小数点并用字符串操作去除最后一个数字 ...
标签: c# double string-formatting roundtrip