假设我有一个十进制数列表,我必须每三个位置用逗号格式化,加上小数点后面的相应位数 . 我想使用.net string.Format
方法 .
我希望它像这样工作:
string format = ???;
string s1 = string.Format(format, "1500"); // "1,500"
string s2 = string.Format(format, "1500.25"); // "1,500.25"
string s3 = string.Format(format. "3.1415926358979"); // "3.1415926358979"
我已经看到其他答案,其中小数点后的数字要么限制为固定的数字或完全截断,但这对我的应用程序不起作用 . 我想在数字的整个部分添加逗号分隔符,但保持小数点后的数字完全相同 .
3 回答
第一个问题,您需要在格式化之前解析字符串 . 可能会失去一些精确度 . 然后你需要决定你需要的最大精度 . 然后你可以做这样的事情:
小数位后面的
#
是十进制数字的占位符 . 如果没有更多数字,则不会显示尾随零 .如果被限制为多个小数位,或者在转换为
double
时可能会失去精度 . 你可以像这样做一些真正的cludgy:这将在字符串中的
.
上拆分,将第一部分解析为int,将其转换回正确格式化的字符串然后再将小数部分重新打开(如果有的话)这样的事情?
格式是这样的: