c# - 十进制 ToString 格式,至少给出 1 位数字,没有上限

标签 c# .net tostring

如何在 C# 中格式化 decimal,使其小数点后至少一位,但如果指定的小数点后超过 1 位则没有固定的上限:

5 -> "5.0"
5.1 -> "5.1"
5.122 -> "5.122"
10.235544545 -> "10.235544545"

最佳答案

使用 ToString("0.0###########################") .

一些注意事项:,

  • 有 27 个 #在那里,作为 decimal structure最多可容纳小数点后 28 位的精度。
  • 0 custom specifier将导致始终显示数字,即使值为 0。
  • # custom specifier仅当数字为零且该数字右侧/左侧的所有数字(取决于您位于小数点的哪一侧)均为零时才显示值。
  • 您需要插入尽可能多的 #第一个之后0到小数点右边以容纳您将传递给 ToString 的所有值的长度,如果你只需要精确到小数点后 10 位,那么你需要九个 # (因为你有第一个小数位右边的 0 处理)

有关详细信息,请参阅 MSDN titled "Custom Numeric Format Strings" 部分.

关于c# - 十进制 ToString 格式,至少给出 1 位数字,没有上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8184068/

相关文章:

基于Java的移动应用+IIS服务器

.net - 如何检测用户的字体 (DPI) 是否设置为小号、大号或其他字体?

.net - Directory.GetDirectories() 返回的目录顺序是否保证有序?

javascript - 为什么 function.toString() 输出 "[native code]",而登录到控制台直接显示函数的源代码?

java - String 的 toString() 方法有什么实际用途吗?

c# - 在 MVVM 模式中控制 MediaElement 及其源

c# - 在 PDF 上添加签名图像而不使用 iTextSharp 对其进行数字签名

c# - WCF方法未接收参数

java - 在插入数据库之前尝试将 Arraylist<LatLng> 转换为字符串

c# - 解析表达式(带有自定义函数和操作)