我正在开发一个应用程序,我将数据库中的货币值保存为int64。
例如,如果我在数据库中保存1欧元,它将保存为100美分。 当我读取该值时,如何对其进行格式化,使其显示如下:
db value / output
100000 = 1,000.00
10000 = 100.00
1000 = 10.00
100 = 1.00
10 = 0.10
1 = 0.01
我用string.format进行了实验,但我无法得到我需要的结果...... 非常感谢您的帮助。
答案 0 :(得分:2)
您可以创建具有所需属性的自定义NumberFormatInfo
对象,并使用它来格式化输出。下面的代码不假设值来自数据库,但应该没有区别:
// Create custom number format
NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";
nfi.NumberGroupSeparator = ",";
// You can also set property NumberDecimalDigits to the number of decimal digits that you need:
nfi.NumberDecimalDigits = 2;
// Output the results
long textValue = 123456789;
Console.WriteLine((textValue/100m).ToString("N", nfi));
因为您使用圆数存储值,所以输出数除以100得到实际值
答案 1 :(得分:0)
最简单的方法是让SQL为您处理转换。假设你有SQL Server,你可以简单地使用函数FORMAT(db_value/100.0,'#,##0.00')