Microchip
直播中

冯栋

7年用户 283经验值
私信 关注
[问答]

浮点运算问题

嗨,我在我的应用程序中使用PIC32 MX250F256H控制器。我面临着浮点运算的一些问题。浮点F=0in主体(){f=(浮点)(47.171143947.0);}我应该得到f=0.1711439,而我得到f= 0.1711425i,希望在十进制之后达到第六位的精度。我怎么做?

以上来自于百度翻译


      以下为原文

    Hi,

       I am using PIC32MX250F256H controller in my application.I am facing some issues with floating point operations.

float f=0
int main()
{
f=(float)(47.1711439-47.0);
}

I should get f=0.1711439 instead I m getting f=0.1711425
I want accuracy upto 6th place after decimal.How do i do it?

回帖(19)

吴键洪

2018-10-8 16:04:50
你需要刷新一下浮点数字是如何工作的。尝试使用“double”来代替浮点数。

以上来自于百度翻译


      以下为原文

    You need to refresh your memory about how floating point numbers work.
Try using "double" instead of float.
举报

李雨晨

2018-10-8 16:17:48
XC32编译器指南包含了一个相当好的解释浮点,双,长双的差异。参见浮点数据类型章。[编辑:和照顾- FNO短双编译器optHTP://www. MyCHIP.COM/FUMMS/M68 39 40.ASPX ]

以上来自于百度翻译


      以下为原文

    The XC32 compiler guide contains a rather good explanation of the differences for float, double, long double.
see  FLOATING-POINT DATA TYPES chapter.
 
[edit: and take care of -fno-short-double compiler option
http://www.microchip.com/forums/m683940.aspx
]
举报

王蓓

2018-10-8 16:36:27
我用了双偶长双

以上来自于百度翻译


      以下为原文

   
I used Double even long double also
举报

王蓓

2018-10-8 16:48:08
如何刷新内存?

以上来自于百度翻译


      以下为原文

   
How do i refresh memory?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分