编组十进制精度点 [英] Marshalling Decimal Precision point

查看:66
本文介绍了编组十进制精度点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 [MarshalAs(UnmanagedType.Currency)] 
public decimal dePrice;





我使用上面的代码传递 dePrice = 230.00125 但我收到 dePrice = 230.0012 在另一端虽然是TCP Socket,但是如何在不改变数据类型的情况下获得实际值?

解决方案

看起来货币数字四舍五入到四位小数(例如,参见 MSDN [ ^ ]页面)。我建议你使用十进制 [ ^ ]数据类型代替。

[MarshalAs( UnmanagedType.Currency)]           
public decimal dePrice;



I am using above code for passing dePrice= 230.00125 but i receive dePrice = 230.0012 at Other end though TCP Socket, so how can i get actual value without changing datatype?

解决方案

It looks Currency numbers are rounded to four decimal places (see, for instance this MSDN[^] page). I suggest you using the Decimal[^] data type instead.


这篇关于编组十进制精度点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆