String.Format 格式化货币的小问题

 今天在开发过程中,遇到一件让我觉得比较纳闷的事情:用String.Format
格式化充值金额的时候,我这样处理: String.Format("{0:C2}",
dr["InpourMoney"].ToString())后,并没有像预期在充值金额前面加上货币符号¥,
 反而 String.Format("{0:C2}", dr["InpourMoney"])
这样处理后,在页面充值金额上面添加了¥符号。其中dr 是DataTable的Row。下面我们简单的例子来验证给大家看看:

代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       lblText.Text = string.Format("{0:C2}", 12.345);            //¥12.35

       Object d = new Object();

       d = "12.345";

       lblText.Text = String.Format("{0:C2}", d);                  //12.345
       lblText.Text = String.Format("{0:C2}", d.ToString());       //12.345

       Object c = new Object();
       c = 12.345;
       lblText.Text = String.Format("{0:C2}", c);                 //¥12.35
       lblText.Text = String.Format("{0:C2}", c.ToString());      //12.345
    }
}

 

 似乎只有数字类型、或可以拆箱为数字类型的Object,String.Format才起效。

时间: 2024-09-20 11:49:59

String.Format 格式化货币的小问题的相关文章

.net基础~string.Format格式化字符

.net里的string.Format方法,可以格式化字符,以下是几种最见的组合,代大家参考 数字 {0:N2} 11.11  数字 {0:N0} 11  货币 {0:c2} $11.11  货币 {0:c4} $11.1111  货币 "¥{0:N2}" ¥11.11  科学计数法 {0:E3} 1.11E+001  百分数 {0:P} 11.11% 日期 {0:g}  2001-11-1 11:11 日期 {0:G}  2001-11-1 11:11:11 日期 {0:D}  20

我的Android进阶之旅------>Java字符串格式化方法String.format()格式化float型时小数点变成逗号问题

    今天接到一个波兰的客户说有个APP在英文状态下一切运行正常,但是当系统语言切换到波兰语言的时候,程序奔溃了.好吧,又是我来维护.     好吧,先把系统语言切换到波兰语,切换到波兰语的方法查看文章 我的Android进阶之旅------>Android[设置]-[语言和输入法]-[语言]列表中找到相应语言所对应的列表项   地址:http://blog.csdn.net/ouyang_peng/article/details/50209789 ======================

String.format() (格式化输出)

public class A { public static void main(String[] args) { int x = 1; double y = 3.14; System.out.printf("x=%d,y=%f\n", x, y); } } /* x=1,y=3.140000 */ String java.lang.String.format(String format, Object... args)返回一个格式化的String,使用给定的 format参数,数据源

JAVA字符串格式化-String.format()的使用_java

本篇介绍JAVA字符串格式化-String.format()的使用,具体如下: 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串. format(Locale locale, String for

string.Format字符串格式化说明

先举几个简单的应用案例: 1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0.20) 默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数 string.Format("{0:C1}",23.15) 结果为:¥23.2 (截取会自动四舍五入) 格式化多个Object实例 string.Format("市场价:

String.Format in Java and C#

原文:String.Format in Java and C# JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言环境.格式字符串和参数返回一个格式化字符串. format(String format, Object... args) 使用指定的格式字符串和参数返回一个格式化字符串. 举几个这个方法实用的例子(注释是输出结果): CODE: lon

C#中string.format的格式和用法

原文:C#中string.format的格式和用法 String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项. String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项. String.Format (IFormatProvider, String, Object[]

C#中的String.Format的格式参数详解

一.定义 String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项. 如: (1)  代码如下 复制代码 string p1 = "Jackie"; string p2 = "Aillo"; Response.Write(String.Format("Hello {0}, I'm {1}", p1, p2)); (2)  代码如下 复制代码 Response.Write(String.Format(

.NET C# Tostring format 格式化字符串

一.数值型 formatCode 是可选的格式化代码字符串.必须用"{"和"}"将格式与其他字符分开.如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,即: "{{"或者"}}". 常用格式举例: (1) int i=12345; this.textBox1.Text=i.ToString(); //结果 12345(this指当前对象,或叫当前类的实例) this.textBox2.Text=i.ToSt