请教一个,float类型转为long类型
就是我想把数据float v = 12345.67转为long y=1234567?有没有比较好的写法?这还不简单:
y = (double)v * 100; ghslfgkkl88 发表于 2021-12-20 18:34
这还不简单:
y = (double)v * 100;
为什么要提升到double?不会超出表示范围 emwin 发表于 2021-12-21 20:18
为什么要提升到double?不会超出表示范围
数值小,不超出表示范围,可以不提升。但我自己通常都会提升,可确保无虞。 ghslfgkkl88 发表于 2021-12-22 10:01
数值小,不超出表示范围,可以不提升。但我自己通常都会提升,可确保无虞。
对不带DSP指令集的M0/M3,效率应该有差异 emwin 发表于 2021-12-22 11:36
对不带DSP指令集的M0/M3,效率应该有差异
1. 你怎么知道楼主的数值范围是多大?他在楼主位的数值大概只是举例;
2. 你怎么知道楼主用的什么芯片?
3. 数据量小的情况下,这点效率算什么?绝大多数时候,5us完成跟0.5us完成没区别,不影响使用;
4. 你分清楚了DSP指令和FPU单元的区别吗? ghslfgkkl88 发表于 2021-12-22 11:48
1. 你怎么知道楼主的数值范围是多大?他在楼主位的数值大概只是举例;
2. 你怎么知道楼主用的什么芯片? ...
3. 功能没差别,考虑效率当然可以
4. 写错了,应该表述为Floating Point指令集 如果不提升的话很大概率会超出范围,毕竟float只能够表示6位有效数字。
页:
[1]