怪事123.tostring("c") 转换后显示为$123,100分求教!!!
怪事123.tostring("c") 转换后显示为$123,请问怎么回事. --------------------编程问答-------------------- 你采用了格式转换,c默认代表把123转换成了美元符号显示。。 --------------------编程问答-------------------- 这不是对着的嘛? --------------------编程问答--------------------
格式字符串 资料 结果
"{0:C}" 12345.6789 $12,345.68
"{0:C}" -12345.6789 ($12,345.68)
"{0:D}" 12345 12345
"{0:D8}" 12345 00012345
"{0:E}" 12345.6789 1234568E+004
"{0:E10}" 12345.6789 1.2345678900E+004
"{0:F}" 12345.6789 12345.68
"{0:F0}" 12345.6789 12346
"{0:G}" 12345.6789 12345.6789
"{0:G7}" 123456789 1.234568E8
"{0:N}" 12345.6789 12,345.68
"{0:N4}" 123456789 123,456,789.0000
这种转换有何奇怪?
问题是你想转换成什么格式? --------------------编程问答-------------------- 没什么奇怪。。你的C表示的一个 "格式的关键字 " 就像 DateTinm.Now.toString("yyyy-MM-dd");
显示的是 XXXX年XX月XX日一样 --------------------编程问答-------------------- 错了是
DateTime.Now.toString("yyyy-MM-dd");--------------------编程问答-------------------- http://blog.csdn.net/q107770540/archive/2010/11/05/5989923.aspx --------------------编程问答-------------------- "{0:C}" 123 $123
结果是这样子的啊。呵呵。你想出来什么样子啊。如果想出123,就把c去掉。 --------------------编程问答--------------------
支持! --------------------编程问答--------------------
人家已经给出了的格式的样式了 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 这个和当前操作系统有关系,但也可以设置的
--------------------编程问答-------------------- 我想要转换为¥123 因为装机是时区选择的是美国,现在时区更改回来了,还是显示为$123 --------------------编程问答-------------------- LZ想问的应该是为什么显示美元符号,而不是显示人民币符号。。 --------------------编程问答-------------------- C 是标准数字格式字符串,currency 的意思,货币格式,格式化的结果和线程的语言文化有关,中文是¥123,美国英语就是 $123,还可以指定精度,C2,结果就是 $123.00
//结果: ¥123.00
Response.Write(123.ToString("c"));
//结果:¥123.00
Response.Write(123.ToString("c", new System.Globalization.CultureInfo("zh-CN")));
//结果:$123.00
Response.Write(123.ToString("c", new System.Globalization.CultureInfo("en-US")));
--------------------编程问答--------------------
就是这些。。 --------------------编程问答--------------------
对就是这个意思.我要人民币的符号,但是显示出来是美元符号. --------------------编程问答-------------------- String.format(“Y{0}”,123); --------------------编程问答--------------------
正解 --------------------编程问答-------------------- 格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)
string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0.20)
默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数
string.Format("{0:C1}",23.15) 结果为:¥23.2 (截取会自动四舍五入)
区域就用System.Globalization.CultureInfo("zh-CN") --------------------编程问答-------------------- 123.tostring("c") 会转换为本地化货币格式,跟服务器的区域与语言设置有关
可以在控制面板中区域语言设置中更改 --------------------编程问答--------------------
格式字符串 资料 结果
"{0:C}" 12345.6789 $12,345.68
"{0:C}" -12345.6789 ($12,345.68)
"{0:D}" 12345 12345
"{0:D8}" 12345 00012345
"{0:E}" 12345.6789 1234568E+004
"{0:E10}" 12345.6789 1.2345678900E+004
"{0:F}" 12345.6789 12345.68
"{0:F0}" 12345.6789 12346
"{0:G}" 12345.6789 12345.6789
"{0:G7}" 123456789 1.234568E8
"{0:N}" 12345.6789 12,345.68
"{0:N4}" 123456789 123,456,789.0000
你输出的是对的啊!看你要结果是什么样的? --------------------编程问答-------------------- --------------------编程问答--------------------
顶下 --------------------编程问答-------------------- 跟环境有关系
如果非要显示人民币 就自己写个 ¥ 后面加字段 --------------------编程问答-------------------- tostring()应用很多的 很强大的
--------------------编程问答-------------------- 100分啊。。。。 --------------------编程问答-------------------- 同意思24楼的
这样不管变什么环境都没事,直接在输出前写个¥ --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 同意思24楼的
这样不管变什么环境都没事,直接在输出前写个¥ --------------------编程问答--------------------
using System;--------------------编程问答-------------------- 是在不行用一个笨方法,拼接字符串~~~ 给数字前面+1个 ¥ --------------------编程问答--------------------
using System.Globalization;
using System.Threading;
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();
}
}
补充:.NET技术 , ASP.NET