项目过程中遇到件事,很不理解,即给double型变量赋值有偏差,把无关语句去掉后如下:
double frequence; // 改在main()中定义也无法解决问题
main()
{
frequence = 5555.12;
while(1) ;
}
进入debug模式下跟踪查看,frequence=5555.1196,赋予他值也同样有偏差,例如frequence = 5555.05,得到的却是5555.0498, 请问怎么回事? 我用的是STM8S103K3, COSMIC+STVD4.3.1 谢谢! |
而用float类型赋值后 查看是5555.12,加0也是这个。所以应该是你的编译器问题。不然即使除不尽也应该显示5555.1199才对,只是9的个数不同,而不应该1196
VC下是5555.1199999999999,应该是你的编译器把double简化成float(32位)了,你去检查下编译器配置先