我正在尝试为app创建短信计数器。它在前几次测试运行中运行良好,但突然之间没有表现出应有的方式。
我想要做的是根据在EditText中输入的字符数来获取要发送的短信数。
0个字符= 0(短信计数)
160个字符= 1(短信计数)
161个字符= 2(短信计数)
320个字符= 2(短信计数)
321个字符= 3(短信计数)
基本上一个短信可以包含160个字符。我在jsfiddle上尝试了同样的事情并且工作正常。点击这里---> JS Fiddle Link
CODE SNIPPET
我试过在这里发帖,但是只是继续显示CODE NOT FORMATTED ERROR。请在pastebin上找到代码。
logcat的
http://pastebin.com/wb1xm7fj
非常感谢任何帮助
答案 0 :(得分:0)
您的代码中出现问题的原因是您在调用int
之前划分Math.ceil
:161/160 == 1
,而不是1.00625
。自Math.ceil(1) == 1
开始,实际上无需拨打Math.ceil
。
对现有代码的简单修复就是将分部写为
msgChar / 160.0
迫使msgChar
向上转换为双倍,所以这会表现得像你预期的那样。
您不需要使用Math.ceil
来舍入分割的结果:如果在分割之前将denominator-1
添加到正分子,则结果将向上舍入到下一个整数:
int msgCount = (numChars + 159) / 160;