c# - C# 用千位分隔符格式化数字,但保持小数位数不变
问题描述
我想为double
数字添加千位分隔符,但希望保持小数位不变,即不想要任何舍入。
#,#
正在解决我添加千位分隔符的问题,但如何保留小数位?#,#
之后剥离部分.
。
我不能使用任何文化或类似的东西&我正在调用其函数的开发人员只给了我一种通过作为参数传递来更改格式的方法strFormat
。
我确实检查了其他帖子甚至文档,但不知何故无法弄清楚这一点。
string strFormat = "#,#";
string str = double.parse("912123456.1123465789").ToString(strFormat);
//Expected here 912,123,456.1123465789
//Actual Output 912,123,456
//912123456.123 should give 912,123,456.123
//912123456.1 should give 912,123,456.1
//912123456.1123465789 should give 912,123,456.1123465789
//912123456 should give 912,123,456
解决方案
好吧,在查看Microsoft上的文档之后,似乎没有特定的方法可以允许数字中的浮点位置 - 格式字符串中的所有字符都是字符占位符。
我建议您要么使用非常讨厌的预定数量的#
s 来设置小数位的宽度,要么使用稍微少(或可能更多,取决于您的前景)的讨厌的选项将所有数字读入数组,确定最长的小数位置,然后使用结果构建#
s 的格式。
归根结底,这是一个单一的格式字符串,您可以将其放置到位、测试并确保其正常工作,然后在您找到更好的替代方案时再回来修复。
此外,这是您可以将字符串放入配置设置并在需要时进行更改的事情之一 - 更加灵活。
老实说,在性能和编写程序的宏伟计划中,这是一件非常值得担心的事情。
从技术上讲,Udi Y 得到了我的投票!
推荐阅读
- wso2 - 在 wso2 api manager 3.2.0 分析中找不到 APIM_ANALYTICS_DB 脚本以更改为 oracle?
- python - TypeError: 'fill_value= xx' 不在此分类的类别中
- html - 图标与边框的距离应始终相同
- javascript - 如何根据方向(rtl,ltr)更改滑块内项目的顺序,用于猫头鹰轮播滑块角度
- php - 可能的 ?我可以使用.htaccess 读取“PHP -S localhost”吗?
- javascript - NextJs 如果没有 cookie 则重定向
- angular - 如果我放弃 IE11,我可以放弃 ES5(差异化)构建吗?
- amazon-sqs - 多租户 sqs 消费者中的消息隔离:为每个租户共享相同的队列
- android - Frida javascript错误> TypeError:无法设置未定义的属性“实现”
- jms - 为什么我收到 AMQ214016: Failed to create netty connection and UnknownHostException