用于格式化货币数字的最佳层是什么?
我在前端使用 Javascript,C# 作为中间层,Oracle 9i 作为数据库。
将 2 位小数精度的数字格式化为货币时的最佳实践是什么? 在这三层中哪一层应该是首选?
请记住,用户将能够在应用程序的一些屏幕上编辑这些金额。
I use Javascript on frontend, C# as middle layer and Oracle 9i as DB.
What is the best practice when formatting numbers with 2 decimal precision into a currency? And what layers should be preferred amongst any of these three layers?
Keeping in mind that the User will be able to edit these amounts on a few of my screens on the application.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我想说的是,尽可能贴近用户。 无论如何不在数据库中,因为数据库不会知道用户的区域设置。
更新:在进行货币格式设置时请注意,您向用户显示的信息实际上是正确的。 货币格式与货币转换不同...
I would say do it as close to the user as it is practical. Not in the database anyway, since the DB will not be aware of the locale of the user.
Update: Be aware when doing currency formatting that you are displaying information to the user that is actually correct. Currency formatting is not the same as currency conversion...
小数点的存储精度可以高于 2 位数字。 既然您提到了 C# 和 Javascript,我可以假设您正在使用 ASP.NET 作为前端。
货币的显示必须在 ASP.NET 代码中进行处理,以便根据用户的区域设置/文化信息进行显示。
对于网格视图和其他显示控件,在 C# 中,您可以使用字符串格式选项:
{0:c}
以正确的符号和 2 位小数显示货币。The storage of your decimal can be at a higher precision than 2 digits. Since you mention, C# and Javascript, I can assume that you are using ASP.NET for your front-end.
The display of the currency has to be handled in your ASP.NET code, to display it based on your user's locale/cultureinfo.
For your gridviews and other display controls, in C#, you can use the string formatting option:
{0:c}
to display the currency with the correct symbol and 2 decimal places.如果您想对数据执行任何数学运算,最好在 Javascript 中进行格式化并添加货币符号。
if you want to perform any mathematical operations on your data it will be much better to do the formatting in Javascript and add the currency symbol.