c++ 中的直线y = kx +b中 k我用什么类型来表示比较好?

litchgu 2018-03-13 04:36:57
有人和我说用int来表示,这样数据处理的速度会比float快,但是如果时小数的情况下*1000 /1000这样处理吗?一般这种时怎么处理的啊
...全文
573 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2018-03-16
  • 打赏
  • 举报
回复
引用 9 楼 litchgu 的回复:
引用 1 楼 paschen 的回复:
如果你的k可能是不是整数,那你只能用浮点型表示,没得选,如果能确定只为整数,用int是会比用float效率高
我也觉得用float比较好,但是float算出来的数一直时不精确的,明明是0.2,非要算成0.19999..之类的,算着算着就有问题了,好像整数也是带有点问题的。
对结果进行四舍五入
litchgu 2018-03-16
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
如果你的k可能是不是整数,那你只能用浮点型表示,没得选,如果能确定只为整数,用int是会比用float效率高
我也觉得用float比较好,但是float算出来的数一直时不精确的,明明是0.2,非要算成0.19999..之类的,算着算着就有问题了,好像整数也是带有点问题的。
Acuity. 2018-03-14
  • 打赏
  • 举报
回复
放心,CPU的的浮点运算快得很,不是大量的数据运算,int和float程序猿感觉不出来。
真相重于对错 2018-03-14
  • 打赏
  • 举报
回复
如果平行于Y轴的直线,用y=kx+b,就不好表示了 所以一般用点,矢量表示 具体请百度
真相重于对错 2018-03-14
  • 打赏
  • 举报
回复
引用 6 楼 yangnix 的回复:
K是斜率,最好精确点,当然边界情况要考虑,推荐你一个办法 k=c/d y=kx+b 那么 x=(y-b)*d/c 这样会精确很多
引用 6 楼 yangnix 的回复:
K是斜率,最好精确点,当然边界情况要考虑,推荐你一个办法 k=c/d y=kx+b 那么 x=(y-b)*d/c 这样会精确很多
不管用什么方法,只要涉及斜率,必然免不了除0这道坎
鄢老 2018-03-14
  • 打赏
  • 举报
回复
K是斜率,最好精确点,当然边界情况要考虑,推荐你一个办法 k=c/d y=kx+b 那么 x=(y-b)*d/c 这样会精确很多
mstlq 2018-03-13
  • 打赏
  • 举报
回复
int肯定不合适,一半的直线斜率都绝对值都小于1 向量的意思是 0.75可以用两个int (3,4)来表示, 0.75 等于3/4嘛 同理1.33333可以用(4,3)来表示......
litchgu 2018-03-13
  • 打赏
  • 举报
回复
引用 2 楼 hdt 的回复:
为什么不用矢量表示,如果k 无法表示呢?
矢量?就是在斜率上再加个角度还是什么?能简单点举个小例子吗?谢谢
真相重于对错 2018-03-13
  • 打赏
  • 举报
回复
为什么不用矢量表示,如果k 无法表示呢?
paschen 版主 2018-03-13
  • 打赏
  • 举报
回复
如果你的k可能是不是整数,那你只能用浮点型表示,没得选,如果能确定只为整数,用int是会比用float效率高

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧