C# Web服务,货币输入

C# Web服务,货币输入,c#,asp.net,web-services,currency,C#,Asp.net,Web Services,Currency,Web服务API:我注意到一些公司喜欢将整数作为“货币”金额传递,而不是传递带小数点的十进制数据类型($100.29)。他们为什么选择整数作为货币而不是十进制数据类型 例如,他们这样做 100=1.00美元 10043=100.43美元 为什么不这样做呢 1.00或1=1美元 100.43=100.43美元 并非所有区域性都使用相同的字符作为小数点。通过使用最小的相关货币单位(这里是美分而不是美元),可以避免接受/发出哪个小数点字符的问题。并非所有区域性都使用相同的小数点字符。通过使用最小

Web服务API:我注意到一些公司喜欢将整数作为“货币”金额传递,而不是传递带小数点的十进制数据类型($100.29)。他们为什么选择整数作为货币而不是十进制数据类型

例如,他们这样做

  • 100=1.00美元
  • 10043=100.43美元
为什么不这样做呢

  • 1.00或1=1美元
  • 100.43=100.43美元

    • 并非所有区域性都使用相同的字符作为小数点。通过使用最小的相关货币单位(这里是美分而不是美元),可以避免接受/发出哪个小数点字符的问题。

      并非所有区域性都使用相同的小数点字符。通过使用最小的相关货币单位(这里是美分而不是美元),可以避免接受/发出什么小数点字符的问题。

      不,我看不到在提交给服务器进行转换之前将其系数100变为整数的任何实际好处。而且,这在很大程度上取决于他们内部实施的最佳方式


      我确实在一个web服务中注意到了这一点,我发现这一点的原因是,他们希望将值与其他参数组合起来作为哈希值,以便进行内部校验和验证。

      否,在提交到服务器进行转换之前,我看不到将它的因子100变成整数有什么真正的好处。而且,这在很大程度上取决于他们内部实施的最佳方式


      我确实在一个web服务中注意到了这一点,我发现这一点的原因是,他们希望得到与其他参数组合的值作为哈希值,以进行内部校验和验证。

      ah ok得到了!为了避免问题的圆满解决,没错!浮点数和双数是出了名的不好,有微妙的取整问题。十进制数据类型也精确到30位左右,因此它适用于复利等需要更多位数的计算。啊,好的,明白了!为了避免问题的圆满解决,没错!浮点数和双数是出了名的不好,有微妙的取整问题。Decimal数据类型也精确到30位左右,因此它适用于复利等需要更多位数的计算。