在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5724|回复: 8

[解决] 求助:skill 数据类型转换 函数 string to float

[复制链接]
发表于 2019-1-7 14:14:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 yanpflove 于 2019-1-7 14:28 编辑

求助:SKILL中哪个函数可以将string转换为float?比如w=“0.7”,w是一个字符串,我想取出0.7进行运算,应该怎么做?
谢谢,谢谢~
 楼主| 发表于 2019-1-7 14:27:26 | 显示全部楼层
本帖最后由 yanpflove 于 2019-1-8 10:49 编辑

谢谢,解决了
之前找了那么久,怎么也搞不通
在写这个求助问题的过程中,有了新思路,又找了找,终于找到了
cdfParseFloatString() 可以转换
又找到了一个 atof()和atoi()
都可以将字符串 string 转换为 数值 numbers
---2019/1/8,又发现evalstring()的返回值也是数值型的,更方便呢
发表于 2019-1-14 14:21:34 | 显示全部楼层
别用atof()和atoi()
用aelNumber(string)
 楼主| 发表于 2019-1-14 16:27:51 | 显示全部楼层
本帖最后由 yanpflove 于 2019-1-14 16:33 编辑

回复 3# hccaiwh
多谢指导,您提供的函数很好用,可我通过阅读关于atof和atoi的cadence help文档,没有想明白为什么不建议使用这两个函数,是不是这两个函数容易产生什么问题呢?是因为atof()不能识别“u”、“f”等单位吗?能请您补充一下吗?
StringToNumber.png





  1. atof
  2. atof( t_string ) => f_result/nil
  3. Description:
  4. Converts a string into a floating-point number. Returns nil if the given string does not denote
  5. a number.
  6. The atof function calls the C library function strtod to convert a string into a floating-point
  7. number. It returns nil if t_string does not represent a number.
  8. Arguments:
  9. t_string   A string.
  10. Value Returned:
  11. f_result The floating-point value represented by t_string.
  12. nil If t_string does not denote a floating-point number.
  13. Example:
  14. atof("123") => 123.0
  15. atof("abc") => nil
  16. atof("123.456") => 123.456
  17. atof("123abc") => 123.0


复制代码

发表于 2019-1-14 17:06:26 | 显示全部楼层
本帖最后由 hccaiwh 于 2019-1-16 15:17 编辑

aelNumber(string)和evalstring已经可以覆盖需要用到atoi和atof的情况。
然后atoi有个问题就是atoi(“800n”)=800。
可是大部分情况下我需要的是0.8,因为我做0.18UM工艺 ,
默认的单位是u在很多对mos器件操作的时候,如果你的mos管小于1u,
那么你用 MOS管~>w,
返回的数据是"XXn"而不是"XXu",
其他的一些尺寸小于1u的情况也是一样,
这样你用atoi得到的数据是XX,和你想要的数据差距1000倍,
然后跑的时候如果不对1u和<1u的情况分情况写判定,
那稍微不注意脚本就宕机了  非常蛋疼。
发表于 2019-12-21 00:19:03 | 显示全部楼层


hccaiwh 发表于 2019-1-14 17:06
aelNumber(string)和evalstring已经可以覆盖需要用到atoi和atof的情况。
然后atoi有个问题就是atoi(“800n ...


您好,正好遇到类似问题,如果是逆操作呢?将数值再转换成string,用什么函数比较好?谢谢!
发表于 2019-12-24 17:24:19 | 显示全部楼层


Ellis 发表于 2019-12-21 00:19
您好,正好遇到类似问题,如果是逆操作呢?将数值再转换成string,用什么函数比较好?谢谢!
...


artMakeString
发表于 2019-12-24 17:29:17 | 显示全部楼层


yanpflove 发表于 2019-1-14 16:27
回复 3# hccaiwh
多谢指导,您提供的函数很好用,可我通过阅读关于atof和atoi的cadence help文档,没 ...


对于器件的尺寸
1u的L的管子可以用atoi变成1
但是0.5u的管子呢 一般pcell都是显示的500n
那他就atoi是500了 你还得做个判定(除以1000,才能变成微米)
evalstring话只需要结果 x 1e6 就解决了
发表于 2024-1-24 17:13:28 | 显示全部楼层
这个问题也困扰了我很久,最后想eetop求助了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 17:27 , Processed in 0.030654 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表