如何将Int64值格式化为货币

时间:2015-02-22 19:35:04

标签: c# asp.net asp.net-mvc-5 bitcoin int64

我正在开发一个应用程序,我将数据库中的货币值保存为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进行了实验,但我无法得到我需要的结果...... 非常感谢您的帮助。

2 个答案:

答案 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')

https://msdn.microsoft.com/en-us/library/hh213505.aspx