找回密码
 注册成为天翎用户
查看: 1381|回复: 9

关于字符串计算

[复制链接]
xy_aoxiang 发表于 2012-5-10 13:48:58 | 显示全部楼层 |阅读模式
本帖最后由 xy_aoxiang 于 2012-5-10 15:01 编辑

var aa = '1';
var bb = '2';
var c = a+b;
在iscript脚本中,请问有函数使c等于3吗?上面的表达式c=12,因为变成了字符串连接;
irene 发表于 2012-5-10 14:12:56 | 显示全部楼层
本帖最后由 irene 于 2012-5-10 14:22 编辑

您好,将您的代码改为:
  1. var a = "1";
  2. var b = "3";
  3. var c;
  4. c= parseInt(a) +parseInt(b);
  5. c;
复制代码
即可
回复

使用道具 举报

 楼主| xy_aoxiang 发表于 2012-5-10 14:25:11 | 显示全部楼层
回复 2# irene


    如果 aa 或 bb 是别的程序计算的返回值, c的结果依然是字符串连接。
或者 请问有转换字符串类型的方法吗?
回复

使用道具 举报

irene 发表于 2012-5-10 14:29:15 | 显示全部楼层
您好,请问您上面说的别的程序是什么意思呢?麻烦举个具体的业务场景,谢谢
回复

使用道具 举报

purple 发表于 2012-5-10 14:31:49 | 显示全部楼层
您好,请问您具体是什么需求,看您第一楼的描述,是要将字符串类型转换成数据类型,以便实现累加吗?
回复

使用道具 举报

 楼主| xy_aoxiang 发表于 2012-5-10 14:33:07 | 显示全部楼层
回复 4# irene


    var aa = 0;
    var bb = 调用外部的web service(非本平台),以字符串形式返回值,假设为123;
   var cc = aa + bb;
结果是 0123;
如果用 Math.round(aa+bb),结果是 NaN。
回复

使用道具 举报

purple 发表于 2012-5-10 14:49:16 | 显示全部楼层
本帖最后由 purple 于 2012-5-10 14:50 编辑

运行结果是0123是因为你的字段是字符串。而Math.round方法是将double类型的数值四舍五入取整,您传入的参数是字符串,当然不行呀。如果是累加,您必须先将您的数据类型转换成数值型。parseInt是将数字文本转换成整型并返回。跟您的值从乃里来的没有关系的呀。如果您参照二楼我同事提供的方法还有问题,请贴出您的脚本。谢谢
回复

使用道具 举报

 楼主| xy_aoxiang 发表于 2012-5-10 14:51:42 | 显示全部楼层
回复 7# purple


    请问parseInt的用法是 parseInt(aa),这样吗?
回复

使用道具 举报

purple 发表于 2012-5-10 14:53:10 | 显示全部楼层
是的。
回复

使用道具 举报

 楼主| xy_aoxiang 发表于 2012-5-10 15:01:33 | 显示全部楼层
回复 9# purple


    谢谢
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 19:39

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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