toString参数说明

本文详细介绍了如何使用格式字符串对数值进行格式化,包括货币、科学型、固定点等多种格式,并通过示例展示了不同格式在实际应用中的效果。

格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化。我们使用格式字符串指定格式。格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数。

格式说明符
说明
示例
输出
C
货币
2.5.ToString("C")
¥2.50
D
十进制数
25.ToString("D5")
00025
E
科学型
25000.ToString("E")
2.500000E+005
F
固定点
25.ToString("F2")
25.00
G
常规
2.5.ToString("G")
2.5
N
数字
2500000.ToString("N")
2,500,000.00
X
十六进制
255.ToString("X")
FF
 
public class NumericFormats
{
   public static void Main()
   {
      // Display string representations of numbers for en-us culture
      CultureInfo ci = new CultureInfo("en-us");

      // Output floating point values

      double floating = 10761.937554; Console.WriteLine("C: {0}",
              floating.ToString("C", ci));           // Displays "C: $10,761.94"
      Console.WriteLine("E: {0}",
              floating.ToString("E03", ci));         // Displays "E: 1.076E+004"
      Console.WriteLine("F: {0}",
              floating.ToString("F04", ci));         // Displays "F: 10761.9376"        
      Console.WriteLine("G: {0}"
              floating.ToString("G", ci));           // Displays "G: 10761.937554"
      Console.WriteLine("N: {0}",
              floating.ToString("N03", ci));         // Displays "N: 10,761.938"
      Console.WriteLine("P: {0}",
              (floating/10000).ToString("P02", ci)); // Displays "P: 107.62 %"
      Console.WriteLine("R: {0}",
              floating.ToString("R", ci));           // Displays "R: 10761.937554"           
      Console.WriteLine();

      // Output integral values
      int integral = 8395;
      Console.WriteLine("C: {0}",
              integral.ToString("C", ci));           // Displays "C: $8,395.00"
      Console.WriteLine("D: {0}",
              integral.ToString("D6", ci));          // Displays D: 008395""
      Console.WriteLine("E: {0}",
              integral.ToString("E03", ci));         // Displays "E: 8.395E+003"
      Console.WriteLine("F: {0}",
              integral.ToString("F01", ci));         // Displays "F: 8395.0"   
      Console.WriteLine("G: {0}"
              integral.ToString("G", ci));           // Displays "G: 8395"
      Console.WriteLine("N: {0}",
              integral.ToString("N01", ci));         // Displays "N: 8,395.0"
      Console.WriteLine("P: {0}",
              (integral/10000).ToString("P02", ci)); // Displays "P: 83.95 %"
      Console.WriteLine("X: 0x{0}",
              integral.ToString("X", ci));           // Displays "X: 0x20CB"
      Console.WriteLine();
   }
}

转载于:https://www.cnblogs.com/RickyYan/archive/2009/03/06/1404667.html

<think>我们正在讨论的是EnhancedLogger类中的JSON_INDENT参数。 这个参数用于指定JSON格式化输出时的缩进空格数,使得输出的JSON字符串具有可读性良好的格式。 在代码中,它被用在JSONObject和JSONArray的toString(int indentSpaces)方法中。 </think>### JSON_INDENT 参数说明 在日志工具类的JSON格式化功能中,`JSON_INDENT` 是一个关键配置参数: ```java // 在工具类中的定义位置 private static final int JSON_INDENT = 4; // JSON格式化缩进量 ``` #### 参数详解 1. **核心作用** - 控制JSON字符串的格式化缩进空格数 - 用于`JSONObject.toString(JSON_INDENT)`和`JSONArray.toString(JSON_INDENT)`方法 - 数值越大,输出层级关系越清晰(默认值4是最佳可读性选择) 2. **取值影响** | 取值 | 输出效果示例 | 适用场景 | |------|-------------|----------| | `0` | `{"name":"John","age":30}` | 最小体积(生产环境) | | `2` | 缩进2空格<br>`{␠␠"name": "John",...}` | 平衡可读性和体积 | | `4` | 缩进4空格<br>`{␠␠␠␠"name": "John",...}` | 最佳可读性(调试默认值) | | `8` | 过度缩进<br>`{␠␠␠␠␠␠␠␠"name":...}` | 特殊调试需求 | 3. **实现原理**(源码摘要) ```java public static void json(String tag, String json) { //... formattedJson = new JSONObject(json).toString(JSON_INDENT); //... } ``` - 底层调用`org.json`包的格式化方法 - 数值传递给`JSONStringer`的缩进控制 - 为0时输出紧凑型JSON(无换行/缩进) 4. **性能考量** - 📉 **体积影响**:缩进值每增加1,日志体积平均增大5%-8% - **时间开销**:格式化耗时与缩进值呈线性增长(但仍在毫秒级) - ✅ **最佳实践**: - 开发环境使用4空格缩进 - 生产环境通过配置动态调整为0或2 #### 配置建议 ```java // 在初始化方法中添加配置选项 public static void setJsonIndent(int indent) { if(indent >= 0 && indent <= 8) { JSON_INDENT = indent; } } // 使用示例 EnhancedLogger.setJsonIndent(2); // 改为2空格缩进 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值