RobotFramework中货币字符串的数值计算

时间:2017-05-01 21:40:59

标签: python robotframework

我需要从字符串中删除货币符号,以便我可以在机器人测试中进行一些计算

  # .  ${PD_RT} value is $47.89

  ${price_rt} =  get text  ${PD_RT}
  ${final_price} =  evaluate  ${price_rt} *10 / 100

2 个答案:

答案 0 :(得分:2)

如果您完全确定变量包含带有单个前导美元符号的数字,则可以使用机器人的扩展变量语法删除该字符,同时利用机器人的方法进行变量替换。呼叫评估。

示例:

${final_price}=  evaluate  ${price_rt[1:]}  * 10 / 100

这是有效的,因为机器人将首先评估price_rt[1:],就好像它是一个字符串,然后将结果字符传递给evaluate。然后evaluate会将原始字符串视为数字,然后执行计算。

当然,如果${price_rt}不包含一个字符后跟有效数字,则会失败。

答案 1 :(得分:1)

您可以使用字符串库中的关键字Remove String从字符串中删除货币符号,并将结果转换为浮点数。

${final_price}=     Remove String   ${price_rt}        $
${final_price}=     Convert To Number   ${final_price}
${final_price}=     Evaluate   ${final_price} * 10/100

因此,如果标志不是第一个字符,那么它仍然可以工作;如果字符串无法转换为浮动,则会出现错误消息:
final_price_value cannot be converted to a floating point number