【问题标题】:Currency as string or currency as number?货币作为字符串还是货币作为数字?
【发布时间】:2013-08-14 04:01:25
【问题描述】:

JSON Web 服务:输出货币的最佳方式是什么?

作为字符串或

"Amount": "100.12345"

作为一个数字?

 "Amount": 100.12345

PayЗal 和 Google Checkout 将 json 输出为字符串。为什么?

【问题讨论】:

  • 这取决于用例。字符串 + 是连接,虽然有些店主可能会喜欢 3 美元的商品加上 4 美元的商品是 34 美元,但这个笑话只会搞笑一次。数字唯一的坏处是它们经常需要四舍五入。我还是会选择数字。

标签: c# json web-services currency currency-formatting


【解决方案1】:

我会做整数美分以使其尽可能简单。

"Amount": 1045

...

var amount = json.amount/100;

...

amount === 10.45

【讨论】:

  • 您还可以包含属性 "currency":'US$' 和 "currencyScale":0.01
【解决方案2】:

在我看来,使用数字直到在 C# 中解析将是十进制(而不是双精度)。有关更多信息,您可以查看此处 Why not use Double or Float to represent currency?

如果您使用的是 JSON.NET,请参阅此线程 Json.NET Primitive Types - use Decimal instead of Double

在 JavaScript 中,你使用什么并不重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2015-10-06
    相关资源
    最近更新 更多