文章
问答
讲堂
百科图谱
线下集训
更多
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
讲堂
线下集训
专栏
活动
工作
文档
集市
搜索
登录/注册
solidity中数字不能直接相除吗
我记得之前写的都是可以直接数/数的,比如 88377373/3341394, 但是这个为什么报错呢 ```TypeError: Type rational_const 5312500000000000000 / 27 is not implicitly convertible to expected type uint256. Try converting to type ufixed256x59 or use an explicit conversion. rate =17000*1e18/86400; ^--------------^ ```
我记得之前写的都是可以直接数/数的,比如 88377373/3341394, 但是这个为什么报错呢
rate =17000*1e18/86400; ^--------------^
1 条评论
分类:
以太坊
请先
登录
后评论
默认排序
时间排序
2 个回答
rbtree
- 开发工程师
2022-06-15 21:23
88377373/3341394结果不是整数,应该是一个rational literal,转换成uint256会有精度损失,所以不支持隐式转换。需要uint256(88377373/3341394) **关于rational literal** https://docs.soliditylang.org/en/v0.8.14/types.html#rational-and-integer-literals **下面这个链接,有写隐式转换只会在没有信息损失的情况下发生** https://docs.soliditylang.org/en/v0.8.14/types.html#implicit-conversions
请先
登录
后评论
Tiny熊
2022-06-15 17:30
擅长:智能合约,以太坊
rate 变量是什么类型, 看上去是类型不匹配。
请先
登录
后评论
您需要登录后才可以回答问题,
登录
关注
2
关注
收藏
0
收藏,
2589
浏览
王二小
提出于 2022-06-15 15:44
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: