首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android Studio multiply得到奇怪的结果

Android Studio multiply得到奇怪的结果
EN

Stack Overflow用户
提问于 2019-03-22 14:12:12
回答 1查看 147关注 0票数 2

我在试着把一组数字相乘。应该很简单,但由于某些原因,我得到了一些巨大的数字,我找不出我哪里做错了。

我输入一个数字,它被分成一个数组,它遍历这些数字并将它们相乘

代码语言:javascript
运行
复制
        var iArray = i.toString().toCharArray()
        var iCount = iArray.count().toString()
        var x = 0
        var sum: Long = 1

        while(x < iCount.toInt()) {
            Log.i(iArray[x].toString(), "array");
            sum *= iArray[x].toLong()
            x++
            Log.i(sum.toString(), "sum");
        }

在logcat中,我可以看到数组中的正确数字。例如,如果我尝试357,我得到的结果是

I/3:数组I/51: sum

I/5:数组I/2703: sum

I/7:数组I/148665: sum

但是如果我只计算3*5*7,它工作得很好。我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 14:23:19

你得到的输出是没问题的

因为您将乘以数字的ASCII值,而不是数字本身

3的ASCII值是51,5的ASCII值是53,将它们相乘的结果2703是正确的,依此类推

如果要使用整数乘法,则必须使用将字符数组转换为整数数组或在乘法时考虑ASCII值。

例句:像这样,我不认识sum *= (iArray[x].toLong()-'0'),你可能已经注意到了。:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55293861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档