递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 9315|回复: 11
打印 上一主题 下一主题

[视窗] 【分享】想用小数的不用等吴老板了。

[复制链接]

346

主题

1600

帖子

6537

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6537
QQ
跳转到指定楼层
楼主
发表于 2022-7-19 20:38:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 urenai 于 2022-7-20 00:37 编辑

下面的是易语言DLL   公开的 子程序 2个参数都必须为4字节 小数。

  1. .版本 2
  2. .子程序 xs, , 公开
  3. .参数 小数1, 小数型
  4. .参数 小数2, 小数型
  5. 信息框 (“小数参数1:” + 到文本 (小数1) + #换行符 + “小数参数2:” + 到文本 (小数2), 0, “易语言接收2个小数”, )
复制代码



火山的没法复制代码,就截图+源码了。
XS.v (2.9 KB, 下载次数: 11)


每次测试不通都放弃,多少次了,在非嵌入式情况下,小数8字节,传递出去始终会变形。
不搞了,小数在这里画个句号。这是我最终的解决方案了。

既然整数和单小数都是4字节,
那么干脆将双精度小数 使用 嵌入式 转到 单精度小数
再取出单小数内存地址,以整数读出

再以整数值传递出去。测试完美正确。没有变形。
在定义外部DLL库的时候,只需要将 单精度小数定义成 整数,使用上面方法:_小数转整数() 。返回值赋参即可。
认真看易语言导出函数参数定义的是小数,而火山调用的定义为整数,这应该不难理解了吧。
哎、非嵌入情况下,硬是拐了个大弯。幸好是绕回来了。


少上个图,在编辑一下吧。








又更新了一下,搞了个【单小数类】用作输出输入小数。
先上易语言的参考下。
  1. .版本 2

  2. .子程序 xs, , 公开
  3. .参数 小数1, 小数型
  4. .参数 小数2, 小数型
  5. .参数 小数指针3, 整数型, , 这个是模拟写回小数,,,传输
  6. .局部变量 小数4, 小数型
  7. 小数4 = 1.2345
  8. 写到内存 (小数4, 小数指针3, )
  9. 信息框 (“小数参数1:” + 到文本 (小数1) + #换行符 + “小数参数2:” + 到文本 (小数2), 0, “易语言接收2个小数”, )
复制代码




照样子火山上图+源码
FLOATCLASS.v (2.68 KB, 下载次数: 16)








本帖被以下淘专辑推荐:

专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

23

主题

254

帖子

1443

积分

金牌会员

Rank: 6Rank: 6

积分
1443
沙发
发表于 2022-7-19 20:59:46 来自手机 | 只看该作者
厉害的样子,棒!
回复

使用道具 举报

410

主题

2511

帖子

8281

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8281
板凳
发表于 2022-7-19 21:08:29 来自手机 | 只看该作者
吴总给高手们弄了个难题,七拐八拐
回复

使用道具 举报

10

主题

169

帖子

1382

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1382
地板
发表于 2022-7-19 22:00:21 | 只看该作者
一言难尽
回复

使用道具 举报

346

主题

1600

帖子

6537

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6537
QQ
5#
 楼主| 发表于 2022-7-20 00:39:17 | 只看该作者
这回再也不整小数了,传参、回参 都搞好了。
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

7

主题

247

帖子

2025

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2025
6#
发表于 2022-7-20 01:33:38 | 只看该作者
有必要这么麻烦吗?直接右移32位不就取出来了,管它什么精不精的,直接操作内存准没错
回复

使用道具 举报

25

主题

497

帖子

1808

积分

金牌会员

Rank: 6Rank: 6

积分
1808
7#
发表于 2022-7-20 09:48:43 | 只看该作者
tmf19901124 发表于 2022-7-20 01:33
有必要这么麻烦吗?直接右移32位不就取出来了,管它什么精不精的,直接操作内存准没错 ...

火山的位操作命令,只能是整数
回复

使用道具 举报

69

主题

447

帖子

3111

积分

论坛元老

Rank: 8Rank: 8

积分
3111
8#
发表于 2022-7-20 09:48:48 | 只看该作者
关于错误的语句,具体见图。


回复

使用道具 举报

346

主题

1600

帖子

6537

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6537
QQ
9#
 楼主| 发表于 2022-7-20 11:40:34 | 只看该作者
itismine 发表于 2022-7-20 09:48
关于错误的语句,具体见图。

返回值错误看看。
我功力浅薄,我知道这是取址错误。
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

7

主题

247

帖子

2025

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2025
10#
发表于 2022-7-20 12:23:26 | 只看该作者
qaz2428119 发表于 2022-7-20 09:48
火山的位操作命令,只能是整数

不要用火山的位操作,自己30秒封一个支持长整数,变整数的位操作完事,这个问题提过几次了,老吴一直没有改
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-24 04:24 , Processed in 0.101542 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表